git-annex (5.20131127) unstable; urgency=low

* webapp: Detect when upgrades are available, and upgrade if the user
    desires.
    (Only when git-annex is installed using the prebuilt binaries
    from git-annex upstream, not from eg Debian.)
  * assistant: Detect when the git-annex binary is modified or replaced,
    and either prompt the user to restart the program, or automatically
    restart it.
  * annex.autoupgrade configures both the above upgrade behaviors.
  * Added support for quvi 0.9. Slightly suboptimal due to limitations in its
    interface compared with the old version.
  * Bug fix: annex.version did not get set on automatic upgrade to v5 direct
    mode repo, so the upgrade was performed repeatedly, slowing commands down.
  * webapp: Fix bug that broke switching between local repositories
    that use the new guarded direct mode.
  * Android: Fix stripping of the git-annex binary.
  * Android: Make terminal app show git-annex version number.
  * Android: Re-enable XMPP support.
  * reinject: Allow to be used in direct mode.
  * Futher improvements to git repo repair. Has now been tested in tens
    of thousands of intentionally damaged repos, and successfully
    repaired them all.
  * Allow use of --unused in bare repository.

# imported from the archive
This commit is contained in:
Joey Hess 2013-11-27 18:41:44 -04:00
commit 7189dfd77d
6383 changed files with 204042 additions and 0 deletions

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://ertai.myopenid.com/"
nickname="npouillard"
subject="git-annex no longer supported by gitolite g3"
date="2013-03-25T12:47:21Z"
content="""
See http://gitolite.com/gitolite/dev-status.html for some details.
"""]]

View file

@ -0,0 +1,31 @@
[[!comment format=mdwn
username="http://mildred.fr/"
nickname="mildred"
subject="Problems with URL ending with ".git""
date="2013-05-24T12:15:16Z"
content="""
Hi,
I noticed using the git-annex branch of gitolite v3 that the same URL with \".git\" at the end would not work in git-annex. For example my test repository was `git@git2.mildred.fr:u/mildred/Annex.git` but it didn't work until I converted it to `git@git2.mildred.fr:u/mildred/Annex`
On the server, the repository is in `repositories/u/mildred/Annex.git`
If I try a copy with git-annex for example, I would get:
$ git annex copy titi --to test
copy titi (checking test...) FATAL: u/mildred/Annex.git mildred DENIED
(unable to check test) failed
git-annex: copy: 1 failed
(test is the name of my remote and titi is my file)
Note, in my gitolite conf, I have:
repo u/CREATOR/[a-zA-Z0-9].*
C = @all
RW+D = CREATOR
RW = WRITERS
R = READERS
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawn5RcmefXjrl1vmbHIiOWQyXGXVKxlm3rg"
nickname="Kavin"
subject="comment 12"
date="2013-07-25T03:20:15Z"
content="""
latest code of gitolite does not support git-annex ? I could not find a way to make it work ?
"""]]

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawm9tgeFE5v-arAYYftSv3yUTI5Q4qB2C9M"
nickname="Khaije"
subject="git-annex with gitolite FTW"
date="2013-08-13T15:13:07Z"
content="""
The steps to activate git-annex integration have changed/simplified for v3.
1) during install, be sure to use the 'git-annex' branch, rather than master[fn:1].
2) to enable git-annex-shell, open ~/.gitolite.rc and insert 'git-annex-shell' => 'ua' into the hash list in the COMMANDS array.[fn:2]
#'git-annex-shell' => 'ua',
[fn:1] We'd like to have this feature-branch merged to master, so please send Sitaram feedback, positive and negative, based on your experiences.
[fn:2] There is no GL_ADC_PATH and no \"ua\" subdirectory here, and nothing to \"install\"; the command now comes with gitolite.
"""]]

View file

@ -0,0 +1,13 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkSbvo_NbY-ev1VKtzwo7nEqUmvRO6rXGA"
nickname="François"
subject="comment 14"
date="2013-09-22T18:30:45Z"
content="""
@khaije
Could you paste your config file? Here is mine: http://paste.debian.net/44856/
I don't have any COMMANDS array. Could you elaborate your modifications please?
Thanks.
"""]]

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawnRaueN1AcM8pIMofH5-wQ1Kr4T0GBe8sA"
nickname="wayne"
subject="git-annex with gitolite-rc"
date="2013-10-19T17:03:32Z"
content="""
@François
The proper array in .gitolite.rc seems to be the \"ENABLE\" array, which it appears is parsed into the COMMANDS array in src/lib/Gitolite/Rc.pm
@Khaije
Using 'git-annex-shell' => 'ua' doesn't seem to work for me. The program still fails in src/gitolite-shell around line 163 (gitolite repo version b1d3c05):
_die \"suspicious characters loitering about '$soc'\"
if $rc{COMMANDS}{ words[0] } ne 'ua' and $soc !~ $REMOTE_COMMAND_PATT;
When I insert $rc{COMMANDS}{ words[0] } into the _die message, it shows up as \"1\" instead of \"ua\" as I was expecting.
When I manually set $rc{COMMANDS}{ words[0] } to 'ua' slightly earlier in the script, the git-annex-shell command gets run but it seems to fail to parse the result of the configlist command properly because then I get
Failed to get annex.uuid configuration of repository origin
Instead, got: \"annex.uuid=\ncore.gcrypt=\n\"
I am actually about to give up on the notion of using git-annex and gitolite together. Maybe. I am interested to know if anyone else is having similar problems.
"""]]

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawmbo-yMzW_lkBrS4ICNn5XMr8saYtI1_WY"
nickname="Douglas"
subject="Any further info regarding gitolite support?"
date="2013-11-14T03:20:31Z"
content="""
We have reached the same point as the previous poster from 25 days ago.
$ git annex copy --to origin
FATAL: suspicious characters loitering about 'git-annex-shell 'configlist' '/~/testing''
Remote origin does not have git-annex installed; setting remote.origin.annex-ignore
git-annex: cannot determine uuid for origin
Anyone actually have this working?
"""]]

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawm9tgeFE5v-arAYYftSv3yUTI5Q4qB2C9M"
nickname="Khaije"
subject="comment 17"
date="2013-11-23T02:14:12Z"
content="""
my gitolite.rc is available at https://gist.github.com/khaije1/7609848
For whatever reason I've found this to be very simple to get working so I'd guess there's a missing ingredient somewhere. The combination of gitolite and git-annex is valuable to me so I'll add documents to the url above in hopes it will assist some people with getting the same value.
"""]]

View file

@ -0,0 +1,15 @@
[[!comment format=mdwn
username="http://www.openid.albertlash.com/openid/"
ip="71.178.29.218"
subject="comment 1"
date="2011-12-24T06:08:45Z"
content="""
Looks like you are missing a closing double quote on the line:
echo '$GL_ADC_PATH = \"/usr/local/lib/gitolite/adc/;' >>~gitolite/.gitolite.rc
right after /;
I got this working by the way - great stuff.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joey.kitenet.net/"
nickname="joey"
subject="comment 2"
date="2011-12-24T16:54:31Z"
content="""
I've fixed the typo (anyone can edit pages in this wiki FWIW.)
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="bremner"
ip="156.34.79.193"
subject="repo name conventions?"
date="2011-12-30T21:41:13Z"
content="""
I'm confused by the fact that the git-annex-shell adc rejects any repo names that don't start with /~/ since none of my repos start that way. It seems work ok if I just delete /\~ from the front of the regex, but I feel like I must be missing something.
"""]]

View file

@ -0,0 +1,33 @@
[[!comment format=mdwn
username="http://joey.kitenet.net/"
nickname="joey"
subject="comment 4"
date="2011-12-31T00:29:45Z"
content="""
Well a repo url like `gitolite@localhost:testing` puts it in the gitolite user's /~/testing
This worked when I added the gitolite stuff, anyway.. Let's see if it still does:
<pre>
joey@gnu:~/tmp>mkdir g
joey@gnu:~/tmp>cd g
joey@gnu:~/tmp/g>git init
Initialized empty Git repository in /home/joey/tmp/g/.git/
joey@gnu:~/tmp/g>git annex init
init ok
joey@gnu:~/tmp/g>git remote add test 'gitolite@localhost:testing'
joey@gnu:~/tmp/g>touch foo
joey@gnu:~/tmp/g>git annex add foo
add foo (checksum...) ok
(Recording state in git...)
joey@gnu:~/tmp/g>git annex copy foo --to test --debug
git [\"--git-dir=/home/joey/tmp/g/.git\",\"--work-tree=/home/joey/tmp/g\",\"ls-files\",\"--cached\",\"-z\",\"--\",\"foo\"]
git [\"--git-dir=/home/joey/tmp/g/.git\",\"--work-tree=/home/joey/tmp/g\",\"check-attr\",\"annex.numcopies\",\"-z\",\"--stdin\"]
git [\"--git-dir=/home/joey/tmp/g/.git\",\"--work-tree=/home/joey/tmp/g\",\"show-ref\",\"--hash\",\"refs/heads/git-annex\"]
git [\"--git-dir=/home/joey/tmp/g/.git\",\"--work-tree=/home/joey/tmp/g\",\"show-ref\",\"git-annex\"]
git [\"--git-dir=/home/joey/tmp/g/.git\",\"--work-tree=/home/joey/tmp/g\",\"cat-file\",\"--batch\"]
Running: ssh [\"-4\",\"gitolite@localhost\",\"git-annex-shell 'configlist' '/~/testing'\"]
</pre>
Still seems right, the ADC's regexp will match this the git-annex shell command.
"""]]

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="bremner"
ip="156.34.79.193"
subject="gitolite gets different paths for different urls"
date="2011-12-31T01:50:49Z"
content="""
I guess there is some path rewriting going in in gitolite proper because if try a url of the form
ssh://git@localhost/testing, then it still works with gitolite, but fails with the ADC because
the repo is passed as /testing:
<pre>
Running: ssh [\"git@host\",\"git-annex-shell 'configlist' '/recommend'\"]
Running: ssh [\"git@host\",\"git-annex-shell 'configlist' '/recommend'\"]
</pre>
What I have to ask Sitaram and or find in the docs is if this is a bug or a feature in gitolite. I can see how the leading slash would get swallowed up by this line
<pre>
$repo = \"'$REPO_BASE/$repo.git'\"
</pre>
in gl-auth-command, but I guess that isn't the whole story.
"""]]

View file

@ -0,0 +1,25 @@
[[!comment format=mdwn
username="bremner"
ip="156.34.79.193"
subject="ssh://gitolite-host/repo-name is supposed to work"
date="2011-12-31T03:34:17Z"
content="""
I confirmed with Sitaram that this is intentional, if probably under-documented.
Since the ADC strips the leading /~/ in assigning $start anyway, I guess something like the following will work
<pre>
diff --git a/contrib/adc/git-annex-shell b/contrib/adc/git-annex-shell
index 7f9f5b8..523dfed 100755
--- a/contrib/adc/git-annex-shell
+++ b/contrib/adc/git-annex-shell
@@ -28,7 +28,7 @@ my $cmd=$ENV{SSH_ORIGINAL_COMMAND};
# the second parameter.
# Further parameters are not validated here (see below).
die \"bad git-annex-shell command: $cmd\"
- unless $cmd =~ m#^(git-annex-shell '\w+' ')/\~/([0-9a-zA-Z][0-9a-zA-Z._\@/+-
+ unless $cmd =~ m#^(git-annex-shell '\w+' ')/(?:\~\/)?([0-9a-zA-Z][0-9a-zA-Z.
my $start = $1;
my $repo = $2;
my $end = $3;
</pre>
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="http://joey.kitenet.net/"
nickname="joey"
subject="comment 7"
date="2011-12-31T18:32:28Z"
content="""
That patch seems ok, it doesn't seem to allow through any repo locations that were blocked before.
So, it has my blessing.. but the ADC is in gitolite and will need to be patched there.
"""]]

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="bremner"
ip="156.34.79.193"
subject="afaict git annex normalizes urls on the client side."
date="2011-12-31T22:29:38Z"
content="""
After some debugging printing, here is my current understanding.
- urls of the form git@host:~repo or ssh://git@host
- git sends commands like \"git-receive-pack '~/repo'
- gitolite converts these to $REPO_BASE/~/repo which fails. ~/repo would also fail fwiw.
- git-annex sends seems /~/repo, which works
- urls of the form git@host:/repo or ssh://git@host/repo
- git sends \"git-receive-pack '/db/cs3383'\"
- gitolite converts this to $REPO_BASE/repo which works
- git annex sends \"git-annex-shell 'inannex' '/repo' ...\" which works, but only with the patch above.
- urls of the form git@host:repo
- git sends \"git-receive-pack 'repo'
- gitolite converts this to $REPO_BASE/repo, which works
- git-annex sends \"git-annex-shell 'inannex' '/~/db/cs3383'...\", which also works for git-annex-shell.
So the weird case is the last one where git and git-annex are sending different things over the wire.
I don't know if you have other motivations for doing the url normalization on the client side, but it isn't needed for gitolite, and in some sense complicates things a little. On the other hand, now that I see what is going on, it isn't a big deal to just strip the leading /~ off in the adc. It does lead to the odd situation of some URLs working for git-annex but not git.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joey.kitenet.net/"
nickname="joey"
subject="comment 9"
date="2012-01-02T16:27:55Z"
content="""
Ah right. git-annex normalizes all git ssh style user@host:dir to valid uris, which is where the `/~/` comes from. I don't anticipate this changing on the git-annex side.
"""]]