summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* changelog for 3.6.12-1HEADdebian/3.6.12-1archive/debian/3.6.12-1masterDavid Bremner2020-12-25
|
* Merge tag 'upstream/3.6.12' into debianDavid Bremner2020-12-25
|\ | | | | | | merged from upstream tag v3.6.12
| * Merge tag 'v3.6.12'David Bremner2020-12-25
| |\ | | | | | | | | | v3.6.12
| | * v3.6.12Sitaram Chamarty2020-08-04
| | |
| | * gitolite mirroring terminology changesSitaram Chamarty2020-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This affects the mirroring code and documentation: "slave"/"slaves" are now "copy"/"copies". Backward compatibility should be maintained; you do not need to change either your gitolite.conf, or any scripts you have written on top, until you are ready to do so. (This in turn means the word "slave" will still be present in the code, though only just as much as needed.) Should you wish to make this change, you need to migrate to the latest version (which is also tagged as 3.6.12, so if you want to wait till the distros pick it up wait for that), and then: - In the gitolite.conf file, change `option mirror.slaves` to `option mirror.copies`. - If you have any scripts that use the `gitolite mirror list slaves` command, change to `gitolite mirror list copies`. sitaram
| | * Install script can now modify shebangs when using a custom perl executable.Sitaram Chamarty2020-04-24
| | |
| | * propagate *all* ssh-keygen errorsSitaram Chamarty2020-02-07
| | |
| | * 'config' user command needs to allow for space-separated config valuesSitaram Chamarty2020-01-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This command: ssh git@host config my/wild/repo --add gitweb.owner "Sitaram Chamarty" doesn't work. Sshd converts it to config my/wild/repo --add gitweb.owner Sitaram Chamarty so by the time src/commands/config sees this, that looks like two "values" ("Sitaram" and "Chamarty") instead of one. We can't do much about this in the general case; that's how sshd rolls. I suppose we could, in parse_soc() in src/gitolite-shell, use something like Text::ParseWords instead of a simple "split" (and then send in arguments with backslash-escaped spaces etc) but that's too big a change impacting too many things. Not going to happen for this simple need. The simplest way out is for src/commands/config to learn that multiple trailing arguments are actually one space-separated argument.
| | * memberships: don't try to match patterns for users!Sitaram Chamarty2019-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Technically, the previous behaviour could even be called a "feature", in that it allowed you to use regexes for users -- contradicting the documentation! -- in the following way: @foo = u[123] u9 repo bar RW+ = @foo which would enable users u1, u2, and u3 to access bar. I thought for a bit about this, and decided to fix the code rather than the documentation. Leaving it as a quirk was another alternative, but it would only be a quirk [1], and an incomplete one at that because it only works for patterns inside *groups*, not patterns that are actually *on* the rule line (e.g. RW+ = u[123]). No good... Thanks to Steven Peckins for catching this. [1]: $ dict quirk From The Collaborative Fictional Dictionary of English v.0.48 [gcide]: Quirk \Quirk\ (kw[~e]rk), n. [Written also {querk}.] 1. a bug that doesn't do enough harm to be shot down with extreme prejudice, and in fact might even be said to do something vaguely OK. If you squint. And if it's a Sunday.
| | * finally added notes on how to test mirroring and http mode!Sitaram Chamarty2019-10-16
| | |
| | * minor change to test on ManjaroSitaram Chamarty2019-10-11
| | |
| | * repo-specific hooks: fix bug in handling reserved hooksSitaram Chamarty2019-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two points to consider here: - is the user trying to delete all hooks for a repo? - is it a reserved hook (one we should not be touching) The second one is more important; the first one is a spurious warning that is at worst an aesthetic problem. Unfortunately, when refactoring to fix a bug in 7898f9b, I gave higher priority to the wrong issue, and the more important one was not checked when the less important one was "true". As a result, control moved to the second stage, where hooks were symlinked to the multi-hook driver. Including the all important 'post-update' hook in 'gitolite-admin'. Ouch!
| | * RepoUmask: mention the need for a manual chmod for existing reposSitaram Chamarty2019-04-22
| | |
| | * VREF/MAX_NEWBIN_SIZE does not handle deletionThomas Gerbet2019-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a reference is deleted in a repository where this virtual ref is active, the script is not capable of handling it correctly: remote: fatal: bad object 0000000000000000000000000000000000000000 remote: error: unable to find 0000000000000000000000000000000000000000 remote: fatal: Not a valid object name 0000000000000000000000000000000000000000 This patch fixes the issue. [commit message and patch modified slightly by Sitaram]
| | * minor change to test due to change in git 2.18+Sitaram Chamarty2019-02-06
| | | | | | | | | | | | | | | git 2.18 (and above) does not leave an empty section header lying around when the key and value are deleted using 'git config --unset'
* | | point Vcs-* at salsadebian/3.6.11-2archive/debian/3.6.11-2David Bremner2019-01-25
| | |
* | | Commit patch queue (exported by git-debrebase)debian/3.6.11-1archive/debian/3.6.11-1David Bremner2019-01-25
| | | | | | | | | | | | [git-debrebase make-patches: export and commit patches]
* | | bump dehelper compatibility level to 9David Bremner2019-01-25
| | |
* | | convert to 3.0 (quilt)David Bremner2019-01-25
| | | | | | | | | | | | | | | Git-debrebase doesn't work cleanly out of the box with 1.0 packages using quilt manually.
* | | [PATCH] override install paths.David Bremner2019-01-25
| | | | | | | | | | | | | | | | | | | | | This follows the suggestion of http://gitolite.com/gitolite/install.html Gbp-Pq: Name fix-paths
* | | git-debrebase import: declare upstreamDavid Bremner2019-01-25
|\ \ \ | | |/ | |/| | | | | | | | | | First breakwater merge. [git-debrebase anchor: declare upstream]
* | | git-debrebase convert-from-gbp: drop patches from treeDavid Bremner2019-01-25
| | | | | | | | | | | | | | | | | | Delete debian/patches, as part of converting to git-debrebase format. [git-debrebase convert-from-gbp: drop patches from tree]
* | | changelog for 3.6.11-1David Bremner2019-01-25
| | |
* | | Merge tag 'v3.6.11' into debianDavid Bremner2019-01-25
|\| | | | | | | | | | | v3.6.11
| * | v3.6.11Sitaram Chamarty2019-01-08
| | |
| * | tighten up security for rsyncSitaram Chamarty2019-01-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nick Cleaton (nick@cleaton.net) found and reported a security issue caused by trusting the remote rsync too much. It appears that rsync cannot -- without special precautions -- be used in any "restricted" environment. Gitolite ships with a "bundle helper" called "rsync" (disabled by default; more details below). This fix tightens up this helper to close this hole. TLDR for administrators and packagers: 1. Am I affected? Look in ~/.gitolite.rc for "rsync"; if it is there, you are affected. This is NOT an essential program, and it is not enabled by default. You (or a previous administrator of your site) would have to have explicitly enabled it for you to be affected. 2. What's the quick fix? Comment out the "rsync" line in ~/.gitolite.rc IMMEDIATELY. DO NOT LEAVE IT ENABLED IF YOU ARE UNABLE TO UPGRADE IMMEDIATELY! Uncomment it only after you have upgraded or patched. 3. That bad, huh? Sadly, yes :( DETAILS: This program is not a core program. Despite the name, it will not function as a generic "rsync". This is *only* meant to help out people who are on flaky connections, trying to clone a large repo. Because git clone is not resumable, one common technique is to have someone create a "bundle", then download the bundle to seed the local repo, then "git fetch" to finish off. Since the bundle is a single file, you can use resumable mechanisms (like rsync) to download it. What this command does is allow that kind of bundling to happen automatically, if an administrator enables it. The user simply rsyncs a bundle file using his gitolite credentials. As a result, the rsync helper command that ships with gitolite is executed. This program manages the creation and expiry of bundle files, then passes control to the *real* rsync program to perform the actual data transfer. It is this last step that requires special care when used in a restricted environment, resulting in the need for this patch.
| * | option command needed chmod +xSitaram Chamarty2018-12-23
| | |
| * | testconf: allow picking up a custom rc file if availableSitaram Chamarty2018-11-22
| | |
| * | minor URL fixupSitaram Chamarty2018-11-08
| | |
| * | v3.6.10Sitaram Chamarty2018-09-30
| | |
| * | block access() to repos being importedSitaram Chamarty2018-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc13dfc introduced a block on accessing repos which are in the process of being moved into gitolite's control. This block was (a) in gitolite-shell, which would catch all git-client activity and (b) in list_phy_repos(), which would prevent those repos from being seen by the 'info' command. Unfortunately that was stupid; it also blocked 'gitolite setup' itself, because setup uses list_phy_repos! The correct place to put this was always going to be access(), but I had initially shied away from that because it would cause a slight glitch in the working of any POST_COMPILE trigger scripts that used the access() function on any of the newly migrated repos. But nothing else really works. As a result, the step where you run `gitolite setup` when importing now becomes: gitolite compile gitolite setup --hooks-only gitolite trigger POST_COMPILE
* | | Declare fast forward from 3.6.7-2debian/3.6.9-1archive/debian/3.6.9-1David Bremner2018-09-15
|\ \ \ | | | | | | | | | | | | [dgit --overwrite]
| * | | gitolite3 (3.6.7-2) unstable; urgency=mediumDavid Bremner2017-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Bug fix: "[INTL:pt_BR] Brazilian Portuguese debconf templates translation", thanks to Adriano Rafael Gomes (Closes: #811528). [dgit import package gitolite3 3.6.7-2]
| * | | Import gitolite3_3.6.7.orig.tar.gzDavid Bremner2017-07-03
| / / | | | | | | | | | [dgit import orig gitolite3_3.6.7.orig.tar.gz]
* | | changelog stanza for 3.6.9-1David Bremner2018-09-15
| | |
* | | Merge tag 'upstream/3.6.9' into debianDavid Bremner2018-09-15
|\ \ \ | | | | | | | | | | | | merged from github
| * | | Merge tag 'v3.6.9'David Bremner2018-09-15
| |\| | | | |/ | |/| | | | v3.6.9
| | * v3.6.9Sitaram Chamarty2018-09-08
| | |
| | * warn about unknown triggersSitaram Chamarty2018-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | David Bremner found that 'gitolite trigger foo', where foo is some arbitrary string, silently no-ops. The "gitolite trigger X" command only makes sense when X is POST_COMPILE or POST_CREATE, or, if it's a custom trigger type [1], when there is a section with that name in the rc file with a list of scripts to run. Anything else is an error, and should not silently no-op. [1]: for example, http://gitolite.com/gitolite/odds-and-ends/#using-pubkeys-obtained-from-elsewhere
| | * prevent access to repos which are in the process of bring migratedSitaram Chamarty2018-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Björn Kautler pointed out that, when a repo is being migrated into gitolite as per the documentation [1], there is a gap between the actual move of the repo and the rest of the process where a user can gain read or write access to the repo, which he would *not* have had after the completion of the process. My first thought was to document this, and advise people to use the 'writable' command to disable writes, but there is nothing as simple and painless to prevent reads. (On the plus side, this kind of racy read access can only happen if the conf is using the "deny-rules" option to restrict reads; without that, it makes no difference -- i.e., he gets no access that he would not have got later anyway). But eventually I realised that documentation was frustrating, for various reasons, and that at least in this case there is a way to fix it in the code -- just block all access to a repo that is in ~/repositories, but which does not yet have the update hook setup correctly. Plus, the code does not impact anything else, and is basically just an extra check. [1]: http://gitolite.com/gitolite/basic-admin/index.html#appendix-1-bringing-existing-repos-into-gitolite
| | * access: fallthru in VREFs needs fixingSitaram Chamarty2018-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Björn Kautler pointed out that for VREFs suffering fallthru, the interpretation of the result of access would be wrong. Initially, I was reluctant to make that adjustment here. The 'access' command is meant to be just a shell entry point for the access() function, nothing more, so bringing in adjustments that occur elsewhere in gitolite would not be right. But it makes automated testing for VREF rules more difficult (and VREFs are already hard enough for most people to understand), so I caved. Hopefully this won't turn into a slippery slope...
| | * access: fix minor typo in pattern name usedSitaram Chamarty2018-08-26
| | |
| | * fix 'C' and 'M' tests in 'gitolite access'...Sitaram Chamarty2018-08-04
| | | | | | | | | | | | | | | | | | | | | C was being handled incorrectly, while M was not even considered (and would behave as if MERGE_CHECK was set) thanks to Björn Kautler
| | * VREF/NAME needs special handling in expand-deny-messagesSitaram Chamarty2018-07-22
| | |
| | * 'info' learns '-p' option to show only physical reposSitaram Chamarty2018-07-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we were meaninglessly debating (on the mailing list) the merits of showing the wild repo regexes to a *human*, someone came up with a reasonable need for an option to *not* show them so that certain automated tasks can be a wee bit simpler. Note that I still think the regexes *should* be shown to the user by default; we're just adding an option to explicitly suppress them. 15:31:59 <hiroki> sitaram: Thanks ! The most common use case would be for a sanity check script running on slaves that will check what repositories it has locally, and compare it with the output of info to their master. That way they can be certain all repositories are synced over properly. Second step would be to check all commit hashes of all repositories locally and their respective master.
| | * autoflush stdout...Sitaram Chamarty2018-07-19
| | | | | | | | | | | | | | | ...to see stdout correctly (vis-a-vis stderr) in update hook and expand-deny-messages
| | * v3.6.8Sitaram Chamarty2018-07-12
| | |
| | * fix typo in documentation within VREF codeSitaram Chamarty2018-07-12
| | |
| | * Reduce disk writes in post-compile triggersKonstantin Ryabitsev2018-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a system with thousands of repositories located on disks where: 1. write operations are much slower than read operations 2. IO is burstable but is throttled after a certain limit In such conditions, writing out 10-15 git config settings per each of the 15,000 repositories resulted in around 200,000 calls to git-config and 200,000 disk writes to 15,000 files on every gitolite-admin push, even if there were no changes to any git configs. With this change, we call git-config once to read the entirety of the git config for the repo, and issue writes only if there are changes to any of the settings. Similarly, we only touch git-daemon-export-ok if such file doesn't already exist to avoid another few thousand unnecessary writes. As a result, our gitolite-admin push times went from 10-12 minutes to 20 seconds. Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
| | * allow hard tabs in template dataSitaram Chamarty2018-04-05
| | |