pld-gitolite
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
pld-gitolite [2011-09-13 13:26] – [slug.py] draenog | pld-gitolite [2016-03-21 10:20] (current) – [Authentication] glen | ||
---|---|---|---|
Line 7: | Line 7: | ||
===== Motivation===== | ===== Motivation===== | ||
- | In comparison with [[pld-git|github option]], it would | + | In comparison with [[pld-github|github option]], it would |
give us full control over our repository. Also github does provide only [[http:// | give us full control over our repository. Also github does provide only [[http:// | ||
Line 18: | Line 18: | ||
Authentication is based on ssh keys. People whose keys are in SSH-keys in PLD repository should have access. | Authentication is based on ssh keys. People whose keys are in SSH-keys in PLD repository should have access. | ||
+ | [[howto-git# | ||
+ | ===== Changes to Developer ===== | ||
+ | |||
+ | Changes to developer can be seen from [[cvs2git]] page. | ||
===== Access control===== | ===== Access control===== | ||
==== Assumptions: | ==== Assumptions: | ||
Line 52: | Line 56: | ||
===== New package creation ===== | ===== New package creation ===== | ||
- | In upstream version of gitolite, new package is created by cloning of no existing repo (if the access rules allow for it). However I think that it is too error prone. So [[https:// | + | In upstream version of gitolite, new package is created by cloning of no existing repo (if the access rules allow for it). However I think that it is too error prone. So [[https:// |
ssh draenog@carme.pld-linux.org create < | ssh draenog@carme.pld-linux.org create < | ||
+ | |||
+ | =====Package deletion===== | ||
+ | People with write access to gitolite-admin repository can use [[http:// | ||
+ | ssh draenog@carme.pld-linux.org | ||
| | ||
- | =====Restrictions on commited | + | =====Restrictions on committed |
It is possible to prevent the commits of large files or archives. Currently every file must pass the following tests: | It is possible to prevent the commits of large files or archives. Currently every file must pass the following tests: | ||
- | * its size is smaller then 1 MB or its name matches one of patterns: *.spec, *.patch, *.diff | + | * its size is smaller then 200kb or it is a text file smaller then 2Mb or its name matches one of patterns: *.spec, *.patch, *.diff |
* it is not a zip or compressed file | * it is not a zip or compressed file | ||
* it is not a tar archive | * it is not a tar archive | ||
Line 63: | Line 71: | ||
Post-receive hook can be used to send email notifications about any changes in repositories. The [[http:// | Post-receive hook can be used to send email notifications about any changes in repositories. The [[http:// | ||
- | The example | + | The example |
< | < | ||
- | Subject: | + | Subject: packages/amanda |
- | This is an automated email from the git hooks/ | + | The branch, master has been updated |
- | generated because a ref change was pushed to the repository containing | + | via 29fa1ceae8ca943f79d842b8229d713556a22342 (commit) |
- | the project " | + | |
- | The branch, master has been created | + | Those revisions listed above that are new to this repository have |
- | | + | not appeared on any other notification email; so we list those |
+ | revisions in full, below. | ||
- Log ----------------------------------------------------------------- | - Log ----------------------------------------------------------------- | ||
- | commit | + | commit |
- | Author: | + | Author: |
- | Date: Thu May 26 16:19:28 2011 +0100 | + | Date: Fri Mar 30 15:28:53 2012 +0000 |
- | | + | |
- | diff --git a/f b/f | + | Changed files: |
- | index 7898192..422c2b7 100644 | + | |
- | --- a/f | + | |
- | +++ b/f | + | |
- | @@ -1 +1,2 @@ | + | |
- | a | + | |
- | +b | + | |
- | commit 3a9172e6deb87fa536a356e2a703d334e63cb6dd | + | diff --git a/ |
- | Author: Kacper Kornet <draenog@pld-linux.org> | + | index a27eb99..a98e6e6 100644 |
- | Date: Thu May 26 16:19:13 2011 +0100 | + | --- a/ |
+ | +++ b/ | ||
+ | @@ -10,7 +10,7 @@ Summary: | ||
+ | | ||
+ | Name: | ||
+ | | ||
+ | -Release: 2 | ||
+ | +Release: | ||
+ | | ||
+ | | ||
+ | | ||
- | First commit | + | ----------------------------------------------------------------------- |
- | diff --git a/f b/f | + | Summary of changes: |
- | new file mode 100644 | + | amanda.spec | 2 +- |
- | index 0000000..7898192 | + | 1 file changed, 1 insertion(+), 1 deletion(-) |
- | --- /dev/null | + | |
- | +++ b/f | + | |
- | @@ -0,0 +1 @@ | + | |
- | +a | + | |
- | + | ||
- | ----------------------------------------------------------------------- | + | |
hooks/ | hooks/ | ||
-- | -- | ||
- | packages/a | + | packages/amanda |
</ | </ | ||
Line 116: | Line 123: | ||
git clone git:// | git clone git:// | ||
+ | =====Web interface===== | ||
+ | A web interface for browsing git repositories can be provided by gitweb. You can see trial setup | ||
+ | [[http:// | ||
=====User tools===== | =====User tools===== | ||
==== Modified builder script ==== | ==== Modified builder script ==== | ||
- | At http:// | + | At http:// |
git clone -b gitolite git:// | git clone -b gitolite git:// | ||
Line 127: | Line 137: | ||
| | ||
or | or | ||
- | builder --depth < | + | builder.sh --depth < |
==== slug.py ===== | ==== slug.py ===== | ||
Line 138: | Line 148: | ||
slug.py init name | slug.py init name | ||
| | ||
- | ==Fetch/ | + | ==Clone new repositories== |
- | slug.py | + | slug.py clone pattern |
+ | |||
+ | ==Fetch/ | ||
+ | slug.py | ||
| | ||
If pattern is omitted, it fetches all repositories known to the upstream | If pattern is omitted, it fetches all repositories known to the upstream | ||
| | ||
==Update packages that were downloaded earlier, but do not fetch new ones== | ==Update packages that were downloaded earlier, but do not fetch new ones== | ||
- | slug.py | + | slug.py |
| | ||
==Alternative syntax== | ==Alternative syntax== | ||
- | The following | + | You can also use 'git pld' prefix to call the commands. For example: |
- | git pld fetch | + | git pld clone |
- | and | + | |
- | git pld init | + | |
=== === | === === | ||
- | For more options | + | Description of more advanced |
- | slug.py | + | slug.py |
=====PLD builder infrastructure===== | =====PLD builder infrastructure===== | ||
Only source builder needs to be modified. The changes are minimal so it would be possible to adapt the existing builder with small effort. The modified version of PLD builder automation can be found at https:// | Only source builder needs to be modified. The changes are minimal so it would be possible to adapt the existing builder with small effort. The modified version of PLD builder automation can be found at https:// |
pld-gitolite.1315913163.txt.gz · Last modified: 2011-09-13 13:26 by draenog