Merge branch 'master' into v8

This commit is contained in:
Joey Hess 2020-02-19 14:32:11 -04:00
commit 029c883713
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
456 changed files with 6341 additions and 1085 deletions

View file

@ -63,3 +63,4 @@ get R042/R042-2013-08-16/R042-2013-08-16-CSC01a.ncs get R042/R042-2013-08-16/R04
[[!meta author=yoh]]
[[!tag projects/datalad]]
> warning added; [[done]] --[[Joey]]

View file

@ -0,0 +1,21 @@
[[!comment format=mdwn
username="joey"
subject="""comment 4"""
date="2020-01-23T15:51:46Z"
content="""
I notice that debug output has no BatchMode=true in any ssh call. But
the version of git-annex you show always runs ssh with that when
-J is used, unless sshcaching is disabled.
More evidence that sshcaching is disabled in your transcript is that when
it does run ssh, it does not pass -S.
I think the repository must be on a crippled filesystem, on which
git-annex can't do ssh connection caching, because the filesystem
does not support unix sockets. (Or it potentially could be crippled in some
other way.) So it ignores the annex.sshcaching setting.
You could work around this by setting the (undocumented)
GIT_ANNEX_TMP_DIR to some temporary directory on a non-crippled filesystem.
I'm going to add a warning message in this situation.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 5"
date="2020-01-23T17:51:58Z"
content="""
Thank you Joey! I can only confirm that the file system was likely a crippled/NFS one... So we would likely need to do some sensing on DataLad side and instruct git-annex. Will continue on our end at https://github.com/datalad/datalad/issues/4075
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="joey"
subject="""comment 6"""
date="2020-01-01T17:41:13Z"
content="""
I've added git-annex add --force-large and --force-small, which would be
good to use to avoid this kind of too-broad overriding problem in the future.
"""]]

View file

@ -194,3 +194,5 @@ Utility/DirWatcher/INotify.hs:130:50: error:
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Yes!
> [[fixed|done]] a long time ago --[[Joey]]

View file

@ -0,0 +1,39 @@
### Please describe the problem.
[git-annex Makefile: install-completions](http://source.git-annex.branchable.com/?p=source.git;a=blob;f=Makefile;h=965f53e1fc4a8f6d69041eabaccd759268f6490f;hb=HEAD#l87)
git-annex installs fish completions to the wrong directory. `$(SHAREDIR)/fish/completions` is the directory documented as being exclusive to completions which are shipped in the fish source code; third-party applications installing their own completions are intended to use `$(SHAREDIR)/fish/vendor_completions.d` instead.
See [https://fishshell.com/docs/current/index.html#completion-path](https://fishshell.com/docs/current/index.html#completion-path)
Note that this location can also be obtained in a similar manner to bash-completion:
```
$ pkg-config bash-completion --variable=completionsdir
/usr/share/bash-completion/completions
```
```
$ pkg-config fish --variable=completionsdir
/usr/share/fish/vendor_completions.d
```
### What steps will reproduce the problem?
Run "make install-completions", or install a linux distribution package of git-annex that builds with the current Makefile (Arch Linux or Debian will both show the same issue).
### What version of git-annex are you using? On what operating system?
Arch Linux
git-annex 7.20191230-7
### Please provide any additional information below.
Apparently this is a very common mistake :/ so far I've seen many more projects do this wrong than do it right.
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Not a user, just here to help improve cross-distro packaging. :)
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,32 @@
[[!comment format=mdwn
username="Chel"
avatar="http://cdn.libravatar.org/avatar/a42feb5169f70b3edf7f7611f7e3640c"
subject="comment 1"
date="2020-02-03T23:34:02Z"
content="""
I've got an error from `make install` on version 7.20200202.7:
~~~
./git-annex --fish-completion-script git-annex 2>/dev/null \
> dest/usr/local/share/fish/completions/git-annex.fish
make: *** [Makefile:87: install-completions] Error 2
~~~
I think there should be:
[[!format diff \"\"\"
diff --git a/Makefile b/Makefile
index eb3a34e6a..722921e00 100644
--- a/Makefile
+++ b/Makefile
@@ -86,7 +86,7 @@ install-completions: build
> $(DESTDIR)$(ZSH_COMPLETIONS_PATH)/_git-annex
install -d $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d
./git-annex --fish-completion-script git-annex 2>/dev/null \
- > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/completions/git-annex.fish
+ > $(DESTDIR)$(PREFIX)/$(SHAREDIR)/fish/vendor_completions.d/git-annex.fish
test: git-annex git-annex-shell
./git-annex test
\"\"\"]]
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="eschwartz@5abb721e66990e478c7d1caf96beb4f9794eb168"
nickname="eschwartz"
avatar="http://cdn.libravatar.org/avatar/16ec8475b4e3507f8d1a71101c16b208"
subject="Partial fix only."
date="2020-02-03T23:47:35Z"
content="""
Looks like the install -d was changed to create the new directory, but the actual file write got left left out of the commit.
"""]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="joey"
subject="""comment 3"""
date="2020-02-04T16:09:04Z"
content="""
So it did. Fixed now. Thanks for checking.
"""]]

View file

@ -0,0 +1,149 @@
### Please describe the problem.
If there are multiple files with the same keys in the repository and they are copied to bup special remote,
then `git annex fsck --from=bup` with `--jobs=N` option (N >= 2) can show an error and remove these keys from bup.
Based on the error message (about locked .git/annex/tmp/ file), this problem is probably not specific to bup,
but I tested it with bup only.
### What steps will reproduce the problem?
1. Configure a bup special remote.
2. Add files with the same content to annex (and with the same backend).
3. Copy these files to bup.
4. Run `git annex fsck --from=bup -JN` several times, until it removes these keys from bup.
### What version of git-annex are you using? On what operating system?
git-annex 7.20191230-g985373f8e, build from source, on Debian GNU/Linux buster.
bup 0.29.3-2 from Debian sid. Also tried with bup 0.30, build from source.
### Please provide any additional information below.
[[!format txt """
~ $ mkdir testdir
~ $ cd testdir
~/testdir $
~/testdir $ git init
Initialized empty Git repository in /home/test/testdir/.git/
~/testdir $
~/testdir $ git annex init testrepo
init testrepo (scanning for unlocked files...)
ok
(recording state in git...)
~/testdir $
~/testdir $ ls ~/.bup/index-cache/
~/testdir $
~/testdir $ git annex initremote bup type=bup buprepo=~/testdir/.bup encryption=none
initremote bup (bup init...)
Reinitialized existing Git repository in /home/test/.bup/
Initialized empty Git repository in /home/test/testdir/.bup/
ok
(recording state in git...)
~/testdir $
~/testdir $ ls ~/.bup/index-cache/
None__home_test_testdir__bup
~/testdir $
~/testdir $ echo aaa >file1
~/testdir $ echo aaa >file2
~/testdir $
~/testdir $ git annex add .
add file1
ok
add file2
ok
(recording state in git...)
~/testdir $
~/testdir $ git commit -m files
[master (root-commit) 7a03b66] files
2 files changed, 2 insertions(+)
create mode 120000 file1
create mode 120000 file2
~/testdir $
~/testdir $ git -C .bup show-ref
~/testdir $
~/testdir $ git annex whereis
whereis file1 (1 copy)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
ok
whereis file2 (1 copy)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
ok
~/testdir $
~/testdir $ git annex copy --to=bup .
copy file1 (to bup...)
bloom: creating from 1 file (3 objects).ing: 0 kbytes
Receiving index from server: 1156/1156, done.
bloom: creating from 1 file (3 objects).
ok
copy file2 ok
(recording state in git...)
~/testdir $
~/testdir $ git annex lookupkey file1 file2
SHA256E-s4--17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76
SHA256E-s4--17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76
~/testdir $
~/testdir $ git -C .bup show-ref
2076647ee23ad632c8cf96caf51febbd0604452c refs/heads/SHA256E-s4--17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76
~/testdir $
~/testdir $ git annex fsck --from=bup
fsck file1
(checksum...) ok
fsck file2
(checksum...) ok
(recording state in git...)
~/testdir $
~/testdir $ git -C .bup show-ref
2076647ee23ad632c8cf96caf51febbd0604452c refs/heads/SHA256E-s4--17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76
"""]]
Now run `git annex fsck --from=bup -J2` multiple times, until it drops the key from bup...
[[!format txt """
~/testdir $ git annex fsck --from=bup -J2
fsck file1 fsck file2
100% 4 B 5 B/s 0s
content cannot be completely removed from bup remote
file2: Bad file size (4 B smaller); dropped from bup
(checksum...)
git-annex: .git/annex/tmp/fsck14654.SHA256E-s4--17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76: openBinaryFile: resource busy (file is locked)
failed
(fixing location log) (checksum...) ok
(recording state in git...)
git-annex: fsck: 1 failed
~/testdir $
~/testdir $ git -C .bup show-ref
~/testdir $
~/testdir $ git annex whereis
whereis file1 (2 copies)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
88cc362a-f87a-43c7-b194-e79b2ee91828 -- [bup]
ok
whereis file2 (2 copies)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
88cc362a-f87a-43c7-b194-e79b2ee91828 -- [bup]
ok
~/testdir $
~/testdir $ git annex fsck --from=bup
fsck file1 (fixing location log)
** Based on the location log, file1
** was expected to be present, but its content is missing.
failed
fsck file2 ok
(recording state in git...)
git-annex: fsck: 1 failed
~/testdir $
~/testdir $ git annex whereis
whereis file1 (1 copy)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
ok
whereis file2 (1 copy)
5d9b0df2-000b-4273-bc4a-fb3b9d8319bd -- testrepo [here]
ok
"""]]
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-02-14T18:49:07Z"
content="""
Ugh, I think this could potentially result in data loss. Not when using bup,
but other special remotes.
I've fixed it in git and will think about moving the date of the next
release up.
"""]]

View file

@ -0,0 +1,85 @@
### Please describe the problem.
When running `git annex testremote origin --test-readonly=filename` on a git http remote that supports git-annex, the `storeKey` test fails with error:
```
storeKey: FAIL
./Command/TestRemote.hs:277:
(got: Left "copying to non-ssh repo not supported")
```
(Full example output below)
### What steps will reproduce the problem?
Using https://downloads.kitenet.net/.git/ as an example of a public repository with https git annex support:
```
$ git clone https://downloads.kitenet.net/.git/
Cloning into 'downloads.kitenet.net'...
$ cd downloads.kitenet.net/debug-me/linux/current/
$ git annex get debug-me-standalone-amd64.tar.gz
get debug-me-standalone-amd64.tar.gz (from origin...)
(checksum...) ok
(recording state in git...)
$ git annex testremote origin --test-readonly debug-me-standalone-amd64.tar.gz
testremote origin Remote Tests
unavailable remote
removeKey: dropping from http remote not supported
OK
storeKey: FAIL
./Command/TestRemote.hs:277:
(got: Left "copying to non-ssh repo not supported")
checkPresent: OK (0.02s)
retrieveKeyFile: download failed: ConnectionFailure Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 6, addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be undefined>}, host name: Just "!dne!", service name: Just "443"): does not exist (Name or service not known)
download failed: ConnectionFailure Network.Socket.getAddrInfo (called with preferred socket type/protocol: AddrInfo {addrFlags = [AI_ADDRCONFIG], addrFamily = AF_UNSPEC, addrSocketType = Stream, addrProtocol = 6, addrAddress = <assumed to be undefined>, addrCanonName = <assumed to be undefined>}, host name: Just "!dne!", service name: Just "443"): does not exist (Name or service not known)
OK (0.01s)
retrieveKeyFileCheap: OK
key size Just 13600699; NoChunks; encryption none
present True: OK (0.61s)
retrieveKeyFile: OK (2.39s)
fsck downloaded object: OK
retrieveKeyFile resume from 33%: OK (1.95s)
fsck downloaded object: OK
retrieveKeyFile resume from 0: OK (1.94s)
fsck downloaded object: OK
retrieveKeyFile resume from end: OK (0.68s)
fsck downloaded object: OK
1 out of 14 tests failed (7.61s)
failed
git-annex: testremote: 1 failed
```
### What version of git-annex are you using? On what operating system?
```
git-annex version: 7.20191230-g985373f8e
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.21.1 bloomfilter-2.0.1.0 cryptonite-0.26 DAV-1.3.4 feed-1.2.0.1 ghc-8.6.5 http-client-0.6.4 persistent-sqlite-2.10.5 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs hook external
operating system: linux x86_64
supported repository versions: 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
```
OS: Arch Linux (5.5.1-arch1-1)
### Please provide any additional information below.
I came across this while trying to make our hosted git and git-annex service (gin.g-node.org) open to public https git annex downloads. I was using the `testremote` command to make sure everything works as intended and saw the error thinking, at first, that the server was serving something incorrectly. The error message does clearly state that `copying to non-ssh repo not supported`, so I thought I'd try with kitenet to see if the same happens and it does.
I don't know if this is a bug or intentional—perhaps the test should be failing to indicate that the remote doesn't support `storeKey`? On the other hand, the `removeKey` test displays the "not supported" message and then passes, so maybe the `storeKey` test should behave the same way.
It's possible there's another issue here I'm not entirely aware of.
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Of course! I use and rely on it daily :)
> This is not a bug in the test suite, it turns out, but in
> git-annex's handling of a http remote. It was throwing fatal errors
> rather than the correct behavior of displaying a warning. [[fixed|done]]
> --[[Joey]]

View file

@ -0,0 +1,29 @@
I tried to use the S3 special remote to access DigitalOcean's Spaces API. [Their docs](https://developers.digitalocean.com/documentation/spaces/) suggest that this should be possible. However, it doesn't work.
The command I ran, with key removed:
git annex --debug initremote xamsi-everything type=S3 protocol=https host=sfo2.digitaloceanspaces.com datacenter=sfo2 chunk=64MiB encryption=hybrid keyid=XXX
The non-debug output, in full, with key removed:
initremote xamsi-everything (encryption setup) (to gpg keys: XXX) (checking bucket...) (creating bucket in sfo2...)
git-annex: XmlException {xmlErrorMessage = "Missing error Message"}
failed
git-annex: initremote: 1 failed
The debug output of the part that breaks, again with key material removed:
(creating bucket in sfo2...) [2019-10-15 08:40:41.119524792] String to sign: "PUT\n\n\nTue, 15 Oct 2019 15:40:41 GMT\n/xamsi-everything-a36e2044-07ac-4d85-8450-e5760c897a9b/"
[2019-10-15 08:40:41.119586065] Host: "xamsi-everything-a36e2044-07ac-4d85-8450-e5760c897a9b.sfo2.digitaloceanspaces.com"
[2019-10-15 08:40:41.119639648] Path: "/"
[2019-10-15 08:40:41.119683721] Query string: ""
[2019-10-15 08:40:41.11972899] Header: [("Date","Tue, 15 Oct 2019 15:40:41 GMT"),("Authorization","AWS XXX")]
[2019-10-15 08:40:41.119846915] Body: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CreateBucketConfiguration xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"><LocationConstraint>sfo2</LocationConstraint></CreateBucketConfiguration>"
[2019-10-15 08:40:41.174450718] Response status: Status {statusCode = 403, statusMessage = "Forbidden"}
[2019-10-15 08:40:41.174566002] Response header 'Content-Length': '190'
[2019-10-15 08:40:41.174627301] Response header 'x-amz-request-id': 'tx0000000000001c5b175eb-005da5e879-23e283-sfo2a'
[2019-10-15 08:40:41.174685597] Response header 'Accept-Ranges': 'bytes'
[2019-10-15 08:40:41.174730858] Response header 'Content-Type': 'application/xml'
[2019-10-15 08:40:41.174776256] Response header 'Date': 'Tue, 15 Oct 2019 15:40:41 GMT'
[2019-10-15 08:40:41.174821726] Response header 'Strict-Transport-Security': 'max-age=15552000; includeSubDomains; preload'
[2019-10-15 08:40:41.174984394] Response metadata: S3: request ID=tx0000000000001c5b175eb-005da5e879-23e283-sfo2a, x-amz-id-2=<none>

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-06T17:41:21Z"
content="""
This is either a bug in <http://hackage.haskell.org/package/aws> or
Digital Ocean's implementation of the S3 protocol. I don't know which,
but I do know it has to be fixed in one of those two place, and not
in git-annex.
The fact that the aws library can't even parse an error message out of
their response kind of says something.
But the real problem seems to
While they claim to support V2 signatures,
my guess is there's a problem with their support for V2, since they're
mostly dealing with V4. The aws library's support for V4 is experimental
and [apparently buggy](https://github.com/aristidb/aws/issues/262), but
as git-annex uses it, it will only use V2.
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="annex2384@290036d126d86bcec28ee2f2ead549de1f59e90e"
nickname="annex2384"
avatar="http://cdn.libravatar.org/avatar/ad36fdc55abd8b9913b774fcd0177709"
subject="Using -o metadata?"
date="2020-02-04T03:22:45Z"
content="""
I'm having the same issue, though I can add files if I set annex.addunlocked=true.
"""]]

View file

@ -9,3 +9,5 @@ Add a file to a fresh annex, observe it has no metadata.
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Yes I love it! (Except for its spotty timestamp support)
> [[notabug|done]] --[[Joey]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="reasons not to have annex.genmetadata default to true"
date="2020-02-10T18:40:52Z"
content="""
Some reasons `annex.genmetadata` should *not* default to true: (1) ordinary git does not preserve file modtimes, probably on purpose: if you have some kind of `make` process, you want `git update` to cause updated files to have updated modtimes, not the modtimes from when the files were added to git, so that `make` can detect the change and update downstream files; (2) as @joey noted, potentially wasteful bloat, especially for repos with many files; (3) two different copies of a file may have different modtimes, but all copies must have the same git-annex metadata, because metadata is attached to the [[key|backends]], which for most backends is computed from file contents.
The WOM backend stores the modtime in the key, but then does not store checksums. If [[todo/external_backends]] are implemented, you could make one that includes both the checksum and the modtime in the key.
"""]]

View file

@ -0,0 +1,16 @@
[[!comment format=mdwn
username="joey"
subject="""comment 5"""
date="2020-02-17T16:47:33Z"
content="""
I agree with Ilya's points.
And it's unresonable to characterize this as data loss, because git itself
does not store file timestamp data. Making such mischaracterizations does,
however, cause me, as the maintainer, to wonder if this is a feature that
is worth keeping, since I have no interest in descending that rabbit hole
or fighting such accusations. Generally, going to the strongest possible
argument, when requesting a change, is not actually your best move.
Closing this bug report.
"""]]

View file

@ -78,3 +78,7 @@ note that there is no "(recording state in git...) ..." portion in the output!
[[!meta author=yoh]]
[[!tag projects/datalad]]
> This was fixed by v7 mode, which no longer needs to deal with old-style
> unlocked files and so is not impacted by git false indexes any longer.
> I've verified the test case no longer reproduces. [[done]] --[[Joey]]

View file

@ -0,0 +1,41 @@
### Please describe the problem.
Once the assistant daemon is started, it won't notice updates to any gitignore files. This is probably because it spawns a long-lived `git check-ignore -z --stdin --verbose --non-matching` process which only reads gitignore files on startup.
### What steps will reproduce the problem?
- Start the assistant
- Add a pattern to a relevant `.gitignore` or `.git/info/exclude`
- (Just to be safe) wait for the assistant to commit and sync that change
- Create a file matching the new ignore pattern
- Observe the assistant committing the file to the repository despite it matching the new ignore pattern
### What version of git-annex are you using? On what operating system?
7.20191230-gef6d1e327 on openSUSE Leap 15.1
### Please provide any additional information below.
I assume that the obvious fix would be to watch for changes to gitignore files, and restart the `check-ignore` process accordingly.
A workaround is to restart the assistant. I've tested this and it works fine.
Unsurprisingly the daemon log just shows the normal behaviour so it's probably not very useful, but including anyway just in case:
[[!format sh """
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
Everything up-to-date
[2020-01-06 15:40:21.863988735] Committer: Committing changes to git
(recording state in git...)
[2020-01-06 15:40:22.024703938] Pusher: Syncing with peer1
[2020-01-06 15:40:23.025650786] Committer: Committing changes to git
(recording state in git...)
To tor-annex::<censored>.onion:5227
841db50..d47d59e master -> synced/master
# End of transcript or log.
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Yes, worked great for many years, but struggling to get the assistant to a point I can use it. Main blockers are [[assistant_sometimes_removes_and_re-adds_whole_file]] and [[todo/wishlist__58___disable_automatic_commits]].

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2020-01-23T19:20:47Z"
content="""
The bug I earlier hypothesized might be the same as this one has since been
fixed. So it would be good to know if this bug is fixed. I do not think
enough information was provided for me to be able to reproduce it.
"""]]

View file

@ -0,0 +1,50 @@
### Please describe the problem.
brew install git-annex failed.
### What steps will reproduce the problem?
### What version of git-annex are you using? On what operating system?
Mac OS X 10.11 El Capitan
### Please provide any additional information below.
[[!format sh """
95b3d57ce7--git-annex-7.20191230.tar.gz
==> cabal v1-sandbox init
==> cabal v1-update
==> cabal v1-install --jobs=4 --max-backjumps=100000 alex
==> cabal v1-install --jobs=4 --max-backjumps=100000 happy
==> cabal v1-install --jobs=4 --max-backjumps=100000 c2hs
==> cabal v1-install --jobs=4 --max-backjumps=100000 --only-dependencies --constraint http-conduit>=2.3 --constraint net
==> cabal v1-configure --flags=s3 webapp
==> cabal v1-install --jobs=4 --max-backjumps=100000 --prefix=/usr/local/Cellar/git-annex/7.20191230 --constraint http-c
Last 15 lines from /Users/choi/Library/Logs/Homebrew/git-annex/08.cabal:
StandaloneDeriving
Please enable the extensions by copy/pasting these lines into the top of your file:
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE StandaloneDeriving #-}
|
31 | share [mkPersist sqlSettings, mkMigrate "migrateKeysDb"] [persistLowerCase|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
cabal: Leaving directory '.'
cabal: Error: some packages failed to install:
git-annex-7.20191230-JGm7b2Gk5I8w0hi2BDCiw failed during the building phase.
The exception was:
ExitFailure 1
Do not report this issue to Homebrew/brew or Homebrew/core!
These open issues may also help:
git-annex-remote-rclone 0.6 (new formula) https://github.com/Homebrew/homebrew-core/pull/49468
git-annex: add OBJC_DISABLE_INITIALIZE_FORK_SAFETY environment variable https://github.com/Homebrew/homebrew-core/pull/48411
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
> [[fixed|done]] in git-annex master --[[Joey]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="nrg@bd619d1ebf16e6324c546adea8be8fe1cc2b4325"
nickname="nrg"
avatar="http://cdn.libravatar.org/avatar/428b6c95b52769cf9eecdd351018eacb"
subject="Confirmed with macOS 10.14.6 building git-annex-7.20200202.7"
date="2020-02-03T23:10:22Z"
content="""
The issue is also seen [here](https://github.com/Homebrew/homebrew-core/pull/49731).
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="nrg@bd619d1ebf16e6324c546adea8be8fe1cc2b4325"
nickname="nrg"
avatar="http://cdn.libravatar.org/avatar/428b6c95b52769cf9eecdd351018eacb"
subject="Change introduced by persistent-sqlite and persistent-template"
date="2020-02-04T15:09:59Z"
content="""
The change was introduced [here](https://github.com/yesodweb/persistent/commit/6ca1c2401f228293c64ae05e6109d4936b98c4b9).
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="joey"
subject="""comment 3"""
date="2020-02-04T15:56:00Z"
content="""
I think I've fixed this in master now, but have not been able to test the fix
yet since I don't have the bandwidth to upgrade.
"""]]

View file

@ -0,0 +1,22 @@
### Please describe the problem.
Full build logs are at http://neuro.debian.net/_files/_buildlogs/git-annex/7.20191230+git152-gefb981388
[[!format sh """
...
prop_read_write_transferinfo: FAIL
*** Failed! Exception: 'recoverEncode: invalid argument (invalid character)' (after 1 test):
Exception thrown while showing test case: 'recoverEncode: invalid argument (invalid character)'
Use --quickcheck-replay=507010 to reproduce.
"""]]
[[!meta author=yoh]]
[[!tag projects/datalad]]
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,31 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-02-02T19:41:34Z"
content="""
Minimal reproducer:
bash$ LANG=C ghci Utility/FileSystemEncoding.hs
ghci> useFileSystemEncoding
ghci> toRawFilePath "\611584"
"*** Exception: recoverEncode: invalid argument (invalid character)
No such problem in a unicode locale.
The problem does not, though, affect actually using git-annex in LANG=C
with a filename with that in its name.
Odd because the filesystem encoding is supposed to round-tip well,
anything, but here encoding a string with it is failing internally.
Maybe the thing is, it's not really round-tripping? QuickCheck arbitrary
magics up a FilePath that contains that, so it's starting in the middle and
trying to convert it out.
[[!commit 70395659db9f662e61009d984fc9b0b2f24fdece]] introduced this while
fixing another intermittent encoding test case failure.
ghci> Data.Char.generalCategory '\611584'
NotAssigned
I think it would make sense to filter out NotAssigned and PrivateUse.
"""]]

View file

@ -42,3 +42,6 @@ apparently it is actually timing out on checking (I guess after chunk completion
[[!meta author="yoh"]]
> I see that the bug in the DAV library has been fixed (in 2018),
> so hopefully nothing more needs to be done. [[done]] --[[Joey]]

View file

@ -0,0 +1,22 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-23T19:26:20Z"
content="""
Looking in the git-annex branch of this repository, for information about
a key such as MD5E-s10555001--f8bc87e8841634b3d2f9ac0ba85d0a83.nii.gz.log
which is one of the files that fails to download, all there is is this:
joey@darkstar:/tmp/ds000248#git-annex>cat ./f0b/978/MD5E-s10555001--f8bc87e8841634b3d2f9ac0ba85d0a83.nii.gz.log
1531766688.020213886s 1 82a4b182-753f-4d93-a59e-20cfdd4d4237
1531766681.703832952s 1 e3612a8a-0c48-4374-9bfb-888f4010be54
So location log says it's in s3-PUBLIC, but in fact no S3 version id has been recorded.
And there were old bugs that prevented the recording of the S3 version id.
Notably, it used to be possible to set versioning=yes on an existing S3
remote, and the files already stored in it necessarily lacked version ids
then. That has been fixed.
So, is it still possible to reproduce creating a repository with this problem?
"""]]

View file

@ -0,0 +1,50 @@
Hello.
What does this log mean? It seems to tell" "success", then "openDirStream" fails, then "1 failed". What failed?
Context is in [todo/git annex repair: performance can be abysmal, huge improvements possible](https://git-annex.branchable.com/ikiwiki.cgi?do=goto&page=todo%2Fgit_annex_repair__58___performance_can_be_abysmal__44___huge_improvements_possible)
fatal: bad object refs/heads/git-annex
fatal: bad object refs/heads/git-annex
fatal: bad object refs/heads/git-annex
error: Could not read somehashA
fatal: Failed to traverse parents of commit somehashB
error: Could not read somehashA
fatal: Failed to traverse parents of commit somehashB
error: Could not read somehashA
fatal: Failed to traverse parents of commit somehashB
error: Could not read somehashA
fatal: Failed to traverse parents of commit somehashB
Deleted these local branches, which could not be recovered due to missing objects:
refs/heads/master
refs/heads/git-annex
You currently have refs/heads/master checked out. You may have staged changes in the index that can be committed to recover the lost state of this branch!
Successfully recovered repository!
Please carefully check that the changes mentioned above are ok..
git-annex: .git/annex/journal/: openDirStream: does not exist (No such file or directory)
failed
git-annex: repair: 1 failed
The fact is: this repo is a plain git clone of a git annex repository.
There is no `.git/annex` directory there before `git-annex-repair` is run.
After it ran, there is a `.git/annex` directory with that content:
total 24
drwxrwxr-x 3 4096 Jul 22 15:41 .
drwxrwxr-x 9 4096 Jul 23 07:24 ..
-rw-rw-r-- 1 65 Jul 20 11:59 index
-rw-rw-r-- 1 41 Jul 20 11:59 index.lck
-rw-rw-r-- 1 0 Jul 22 15:41 journal.lck
-rw-rw-r-- 1 211 Jul 20 11:59 mergedrefs
drwxrwxr-x 2 4096 Jul 22 15:41 misctmp
Perhaps git-annex-repair gets confused when recovering a repository that is a plain git clone of a git annex repository?
I did that because annexed objects are 1.7TB big here, so I wanted a local copy of pure git part only to perform repair of the repo, and propagate things somehow the objects at a later stage.
I'll keep the repo lying around for a few days, maybe weeks, if some experiment or further feedback is needed.
Thank you for your attention.

View file

@ -0,0 +1,91 @@
### Please describe the problem.
git annex commands with `--all` option in tuned repository (with `annex.tune.branchhash1=true`) do not do anything.
### What steps will reproduce the problem?
1. Initialize a tuned annex repository with `git annex init -c annex.tune.branchhash1=true`.
2. Add some files to annex.
3. Now `git annex whereis --all` and `git annex fsck --all` (and maybe other commands) don't show/do anything.
### What version of git-annex are you using? On what operating system?
Version 7.20191230-g985373f8e, compiled from sources, on Debian buster 10.2.
### Please provide any additional information below.
[[!format txt """
~ $ mkdir testdir
~ $ cd testdir
~/testdir $
~/testdir $ git init
Initialized empty Git repository in /home/test/testdir/.git/
~/testdir $
~/testdir $ git annex init -c annex.tune.branchhash1=true testrepo
init testrepo (scanning for unlocked files...)
ok
(recording state in git...)
~/testdir $
~/testdir $ echo abcabc >file
~/testdir $
~/testdir $ git annex add file
add file
ok
(recording state in git...)
~/testdir $
~/testdir $ git commit -m file
[master (root-commit) b910684] file
1 file changed, 1 insertion(+)
create mode 120000 file
~/testdir $
~/testdir $ git annex whereis
whereis file (1 copy)
67d9c35f-e206-404f-a9da-6c94894a4f9f -- testrepo [here]
ok
~/testdir $
~/testdir $ git annex whereis --all
~/testdir $
~/testdir $ git annex fsck
fsck file (checksum...) ok
(recording state in git...)
~/testdir $
~/testdir $ git annex fsck --all
(recording state in git...)
"""]]
But `--key` option works:
[[!format txt """
~/testdir $ git annex lookupkey file
SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470
~/testdir $
~/testdir $ git annex whereis --key SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470
whereis SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470 (1 copy)
67d9c35f-e206-404f-a9da-6c94894a4f9f -- testrepo [here]
ok
~/testdir $
~/testdir $ git annex fsck --key SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470
fsck SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470 (checksum...) ok
(recording state in git...)
"""]]
Repository status:
[[!format txt """
~/testdir $ find .git/annex/objects/ -type f
.git/annex/objects/J3/3f/SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470/SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470
~/testdir $
~/testdir $ git ls-tree -r git-annex
100644 blob 20f9faf7ca569d23da5f106a445609d018fa221d activity.log
100644 blob 71f3551b7119daa3c4679d2b790d72b6bc06cbb8 c34/SHA256E-s7--2ed91d820157c0530ffbae54122d998e0de6d958f266b682f7c528942f770470.log
100644 blob d475e423f6fb4863559e8cca981ae8a433f68516 difference.log
100644 blob bf91bd54df30e28f40b49670cf9c9c26ff600a22 uuid.log
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Of course, I love it! Great project, thanks, Joey!
However, /me always wants more features from it. It's great that git-annex continues to develop.
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-02-14T19:01:50Z"
content="""
Indeed this is a bug. Easy to see why, note that "3":
locationLogFileKey path
-- Want only xx/yy/foo.log, not .log files in other places.
| length (splitDirectories (fromRawFilePath path)) /= 3 = Nothing
So this also affected some other things that use that. Including `git-annex log`,
potentially something to do with v2 upgrade (if a v2 repo could be tuned this way?),
and handling transitions set up by `git annex forget`.
(I also checked if annex.tune.objecthash1 similarly broke stuff that
enumerated .git/annex/objects, but that was handled ok already.)
"""]]

View file

@ -0,0 +1,21 @@
I have a git repository with a webdav annex remote. I have used this remote to store a few large files, and transfer them to other computers.
I have done this on three Linux computers on different networks, and it works beautifully! Truly a life-saver!
However, I today tried setting up a macOS computer, and
git annex copy --from=myremote
fails with the simple error message "failed". It downloads about ten megabytes without issue before failing. It then continues with the next file and again downloads a bit (ca. 10 Mb), then fails. The JSON error message has an empty error message field, and the JSON progress messages only contain business-as-usual before the error.
On the computer that has this problem, I am running macOS 10.15.2 and git-annex 7.20191230.
I tried WiFi and wired network connections, which doesn't make a difference. The hard drive has enough space for the files. I tried manually selecting various annexed files, but all fail after 10 Mb.
The same command worked on the linux boxes I set up a few days ago.
The problem really is that I am getting no meaningful error message for triaging this problem.
Any help would be appreciated!
[[!tag moreinfo]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-23T20:28:20Z"
content="""
Adding --debug might provide more information.
`git annex version` will certianly provide useful information, including
the version of the DAV library git-annex was built with.
"""]]

View file

@ -0,0 +1,447 @@
### Please describe the problem.
Having globally configured git-merge to only allow fast forward merges breaks git-annex's sync command.
### What steps will reproduce the problem?
Run the following script, beware it will change the global git config for `merge.ff`:
```
#!/bin/sh
repro() {
rm -rf repo-a repo-b
mkdir repo-a repo-b
( cd repo-a; git init; git annex init; git remote add repo-b ../repo-b )
( cd repo-b; git init; git annex init; git remote add repo-a ../repo-a )
# Setup an initial commit a0 in repo-a
( cd repo-a
touch a0
git add a0
git commit -m a0
git annex sync
)
# Pull a0 into repo-b and create commit 'b' on top of it
( cd repo-b
git annex sync
touch b
git add b
git commit -m b
)
# Back in repo-a create a diverging commit 'a1' and try to sync
( cd repo-a
touch a1
git add a1
git commit -m a1
git annex sync -d
)
}
# First try without merge.ff=only
git config --global --unset merge.ff
repro; rv=$?
# Now with
git config --global merge.ff only
repro || echo "===== Breaks with merge.ff=only ====="
[ $rv -eq 0 ] && echo "===== Works without merge.ff=only ====="
```
### What version of git-annex are you using? On what operating system?
git-annex version 7.20190129-3 from Debian buster
```
$ git annex version
git-annex version: 7.20190129
build flags: Assistant Webapp Pairing S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.20 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.0.0 ghc-8.4.4 http-client-0.5.13.1 persistent-sqlite-2.8.2 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar hook external
operating system: linux x86_64
supported repository versions: 5 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
```
### Please provide any additional information below.
A run of the repro script above with `sh -x`:
[[!format sh """
+ git config --global --unset merge.ff
+ repro
+ rm -rf repo-a repo-b
+ mkdir repo-a repo-b
+ cd repo-a
+ git init
Initialized empty Git repository in /tmp/repo-a/.git/
+ git annex init
init ok
(recording state in git...)
+ git remote add repo-b ../repo-b
+ cd repo-b
+ git init
Initialized empty Git repository in /tmp/repo-b/.git/
+ git annex init
init ok
(recording state in git...)
+ git remote add repo-a ../repo-a
+ cd repo-a
+ touch a0
+ git add a0
+ git commit -m a0
[master (root-commit) 6c82d47] a0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a0
+ git annex sync
commit
On branch master
nothing to commit, working tree clean
ok
pull repo-b
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From ../repo-b
* [new branch] git-annex -> repo-b/git-annex
ok
(merging repo-b/git-annex into git-annex...)
(recording state in git...)
push repo-b
Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (9/9), 805 bytes | 805.00 KiB/s, done.
Total 9 (delta 1), reused 0 (delta 0)
To ../repo-b
* [new branch] git-annex -> synced/git-annex
* [new branch] master -> synced/master
ok
+ cd repo-b
+ git annex sync
commit
On branch master
Initial commit
nothing to commit
ok
fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
pull repo-a
From ../repo-a
* [new branch] git-annex -> repo-a/git-annex
* [new branch] master -> repo-a/master
* [new branch] synced/master -> repo-a/synced/master
Already up to date.
ok
+ touch b
+ git add b
+ git commit -m b
[master d3ecbbf] b
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b
+ cd repo-a
+ touch a1
+ git add a1
+ git commit -m a1
[master 7c4054b] a1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a1
+ git annex sync -d
[2020-01-21 12:41:12.808810342] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
[2020-01-21 12:41:12.810537111] process done ExitSuccess
[2020-01-21 12:41:12.810623305] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
[2020-01-21 12:41:12.812254921] process done ExitSuccess
[2020-01-21 12:41:12.812457308] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..a2ceb59a5879cdf88bd33104c0ee8ac390b3f62e","--pretty=%H","-n1"]
[2020-01-21 12:41:12.813939135] process done ExitSuccess
[2020-01-21 12:41:12.814207234] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"]
[2020-01-21 12:41:12.814533549] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch-check=%(objectname) %(objecttype) %(objectsize)"]
[2020-01-21 12:41:12.820975511] read: git ["config","--null","--list"]
[2020-01-21 12:41:12.822586611] process done ExitSuccess
commit
[2020-01-21 12:41:12.823337737] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","commit","-a","-m","git-annex in dxld@Eli:/tmp/repo-a"]
On branch master
nothing to commit, working tree clean
[2020-01-21 12:41:12.851712964] process done ExitFailure 1
ok
[2020-01-21 12:41:12.851809058] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","symbolic-ref","-q","HEAD"]
[2020-01-21 12:41:12.852844432] process done ExitSuccess
[2020-01-21 12:41:12.85289997] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","refs/heads/master"]
[2020-01-21 12:41:12.853966619] process done ExitSuccess
[2020-01-21 12:41:12.854022004] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/heads/synced/master"]
[2020-01-21 12:41:12.85488393] process done ExitSuccess
[2020-01-21 12:41:12.854935336] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/master..refs/heads/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:12.85636602] process done ExitSuccess
pull repo-b
[2020-01-21 12:41:12.85658479] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","fetch","repo-b"]
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From ../repo-b
* [new branch] master -> repo-b/master
[2020-01-21 12:41:12.869425035] process done ExitSuccess
[2020-01-21 12:41:12.86951948] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
[2020-01-21 12:41:12.870907097] process done ExitSuccess
[2020-01-21 12:41:12.870950213] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/master"]
[2020-01-21 12:41:12.871908557] process done ExitSuccess
[2020-01-21 12:41:12.871965108] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/master..refs/remotes/repo-b/master","--pretty=%H","-n1"]
[2020-01-21 12:41:12.873517012] process done ExitSuccess
[2020-01-21 12:41:12.873627395] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/synced/master"]
[2020-01-21 12:41:12.874965525] process done ExitSuccess
[2020-01-21 12:41:12.875039117] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/synced/master..refs/remotes/repo-b/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:12.876601605] process done ExitSuccess
[2020-01-21 12:41:12.876699748] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/master"]
[2020-01-21 12:41:12.878506453] process done ExitSuccess
[2020-01-21 12:41:12.878622705] read: git ["--version"]
[2020-01-21 12:41:12.879681841] process done ExitSuccess
[2020-01-21 12:41:12.879787682] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","merge","--no-edit","refs/remotes/repo-b/master","--allow-unrelated-histories"]
Merge made by the 'recursive' strategy.
b | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b
[2020-01-21 12:41:12.884914215] process done ExitSuccess
ok
[2020-01-21 12:41:12.885012011] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
[2020-01-21 12:41:12.886558493] process done ExitSuccess
[2020-01-21 12:41:12.88678805] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
[2020-01-21 12:41:12.888312105] process done ExitSuccess
[2020-01-21 12:41:12.888486534] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..a2ceb59a5879cdf88bd33104c0ee8ac390b3f62e","--pretty=%H","-n1"]
[2020-01-21 12:41:12.890100289] process done ExitSuccess
[2020-01-21 12:41:12.890310425] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
[2020-01-21 12:41:12.892087109] process done ExitSuccess
[2020-01-21 12:41:12.892162993] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/synced/master"]
[2020-01-21 12:41:12.893271619] process done ExitSuccess
[2020-01-21 12:41:12.893323578] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/remotes/repo-b/synced/master..refs/heads/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:12.894429364] process done ExitSuccess
push repo-b
[2020-01-21 12:41:12.894494807] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","+git-annex:synced/git-annex","master:synced/master"]
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 472 bytes | 472.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
To ../repo-b
6c82d47..40d7fc6 master -> synced/master
[2020-01-21 12:41:12.939565851] process done ExitSuccess
[2020-01-21 12:41:12.939790389] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","git-annex"]
[2020-01-21 12:41:12.945667784] process done ExitSuccess
[2020-01-21 12:41:12.945804791] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","master"]
[2020-01-21 12:41:12.960382215] process done ExitFailure 1
ok
[2020-01-21 12:41:12.961199639] process done ExitSuccess
[2020-01-21 12:41:12.961575886] process done ExitSuccess
+ rv=0
+ git config --global merge.ff only
+ repro
+ rm -rf repo-a repo-b
+ mkdir repo-a repo-b
+ cd repo-a
+ git init
Initialized empty Git repository in /tmp/repo-a/.git/
+ git annex init
init ok
(recording state in git...)
+ git remote add repo-b ../repo-b
+ cd repo-b
+ git init
Initialized empty Git repository in /tmp/repo-b/.git/
+ git annex init
init ok
(recording state in git...)
+ git remote add repo-a ../repo-a
+ cd repo-a
+ touch a0
+ git add a0
+ git commit -m a0
[master (root-commit) 250bdc3] a0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a0
+ git annex sync
commit
On branch master
nothing to commit, working tree clean
ok
pull repo-b
warning: no common commits
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From ../repo-b
* [new branch] git-annex -> repo-b/git-annex
ok
(merging repo-b/git-annex into git-annex...)
(recording state in git...)
push repo-b
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (11/11), 1023 bytes | 1023.00 KiB/s, done.
Total 11 (delta 0), reused 0 (delta 0)
To ../repo-b
* [new branch] git-annex -> synced/git-annex
* [new branch] master -> synced/master
ok
+ cd repo-b
+ git annex sync
commit
On branch master
Initial commit
nothing to commit
ok
fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
pull repo-a
From ../repo-a
* [new branch] git-annex -> repo-a/git-annex
* [new branch] master -> repo-a/master
* [new branch] synced/master -> repo-a/synced/master
Already up to date.
ok
+ touch b
+ git add b
+ git commit -m b
[master af18b51] b
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 b
+ cd repo-a
+ touch a1
+ git add a1
+ git commit -m a1
[master 91e5f6f] a1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a1
+ git annex sync -d
[2020-01-21 12:41:13.526664743] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
[2020-01-21 12:41:13.52932842] process done ExitSuccess
[2020-01-21 12:41:13.529400247] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
[2020-01-21 12:41:13.530793109] process done ExitSuccess
[2020-01-21 12:41:13.530950751] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..4b03666eac77ff7f709a83289267cc1f28f80391","--pretty=%H","-n1"]
[2020-01-21 12:41:13.532177334] process done ExitSuccess
[2020-01-21 12:41:13.532400895] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"]
[2020-01-21 12:41:13.532647616] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch-check=%(objectname) %(objecttype) %(objectsize)"]
[2020-01-21 12:41:13.538048182] read: git ["config","--null","--list"]
[2020-01-21 12:41:13.539367779] process done ExitSuccess
commit
[2020-01-21 12:41:13.540002284] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","commit","-a","-m","git-annex in dxld@Eli:/tmp/repo-a"]
On branch master
nothing to commit, working tree clean
[2020-01-21 12:41:13.568174475] process done ExitFailure 1
ok
[2020-01-21 12:41:13.568319083] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","symbolic-ref","-q","HEAD"]
[2020-01-21 12:41:13.57005936] process done ExitSuccess
[2020-01-21 12:41:13.5701439] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","refs/heads/master"]
[2020-01-21 12:41:13.571885769] process done ExitSuccess
[2020-01-21 12:41:13.571979878] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/heads/synced/master"]
[2020-01-21 12:41:13.573389866] process done ExitSuccess
[2020-01-21 12:41:13.573486391] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/master..refs/heads/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:13.575824245] process done ExitSuccess
pull repo-b
[2020-01-21 12:41:13.575950332] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","fetch","repo-b"]
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From ../repo-b
* [new branch] master -> repo-b/master
[2020-01-21 12:41:13.586295016] process done ExitSuccess
[2020-01-21 12:41:13.586392073] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
[2020-01-21 12:41:13.587730993] process done ExitSuccess
[2020-01-21 12:41:13.5877987] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/master"]
[2020-01-21 12:41:13.588901362] process done ExitSuccess
[2020-01-21 12:41:13.588969352] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/master..refs/remotes/repo-b/master","--pretty=%H","-n1"]
[2020-01-21 12:41:13.5904904] process done ExitSuccess
[2020-01-21 12:41:13.590563378] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/synced/master"]
[2020-01-21 12:41:13.591686652] process done ExitSuccess
[2020-01-21 12:41:13.591740872] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/synced/master..refs/remotes/repo-b/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:13.593110565] process done ExitSuccess
[2020-01-21 12:41:13.593182929] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/master"]
[2020-01-21 12:41:13.594562053] process done ExitSuccess
[2020-01-21 12:41:13.594660841] read: git ["--version"]
[2020-01-21 12:41:13.595595012] process done ExitSuccess
[2020-01-21 12:41:13.59568225] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","merge","--no-edit","refs/remotes/repo-b/master","--allow-unrelated-histories"]
fatal: Not possible to fast-forward, aborting.
[2020-01-21 12:41:13.597312517] process done ExitFailure 128
[2020-01-21 12:41:13.597552001] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","ls-files","--unmerged","-z","--","."]
[2020-01-21 12:41:13.598903873] process done ExitSuccess
[2020-01-21 12:41:13.598967865] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","ls-files","--deleted","-z","--","."]
[2020-01-21 12:41:13.600107434] process done ExitSuccess
failed
[2020-01-21 12:41:13.600185848] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
[2020-01-21 12:41:13.601485474] process done ExitSuccess
[2020-01-21 12:41:13.601548875] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
[2020-01-21 12:41:13.602954053] process done ExitSuccess
[2020-01-21 12:41:13.603111747] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..4b03666eac77ff7f709a83289267cc1f28f80391","--pretty=%H","-n1"]
[2020-01-21 12:41:13.604578405] process done ExitSuccess
[2020-01-21 12:41:13.60470379] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
[2020-01-21 12:41:13.606371207] process done ExitSuccess
[2020-01-21 12:41:13.606457892] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/repo-b/synced/master"]
[2020-01-21 12:41:13.607658403] process done ExitSuccess
[2020-01-21 12:41:13.607726481] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/remotes/repo-b/synced/master..refs/heads/synced/master","--pretty=%H","-n1"]
[2020-01-21 12:41:13.609097845] process done ExitSuccess
push repo-b
[2020-01-21 12:41:13.60918811] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","+git-annex:synced/git-annex","master:synced/master"]
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 231 bytes | 231.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To ../repo-b
250bdc3..91e5f6f master -> synced/master
[2020-01-21 12:41:13.651508284] process done ExitSuccess
[2020-01-21 12:41:13.651669133] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","git-annex"]
[2020-01-21 12:41:13.657342122] process done ExitSuccess
[2020-01-21 12:41:13.657603861] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","push","repo-b","master"]
[2020-01-21 12:41:13.663212647] process done ExitFailure 1
To ../repo-b
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '../repo-b'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ok
[2020-01-21 12:41:13.663856234] process done ExitSuccess
[2020-01-21 12:41:13.664249322] process done ExitSuccess
git-annex: sync: 1 failed
+ echo ===== Breaks with merge.ff=only =====
===== Breaks with merge.ff=only =====
+ [ 0 -eq 0 ]
+ echo ===== Works without merge.ff=only =====
===== Works without merge.ff=only =====
# End of transcript or log.
"""]]
Notice the call to git-merge, failing:
```
[2020-01-21 12:41:13.59568225] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","merge","--no-edit","refs/remotes/repo-b/master","--allow-unrelated-histories"]
fatal: Not possible to fast-forward, aborting.
```
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Sure! Using git-annex to keep artifacts in development repos works great usually :)

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-21T18:31:22Z"
content="""
I feel it's right for git-annex sync to honor git configs, so it's right
for it to not merge origin/master. And, without that merge, it's right for
it to fail to push master to origin. Since it does push synced/master, this
does not prevent other clones of the repo, where git-annex sync is later
ran, from getting the changes made by this sync.
That leaves only this ugly thing:
fatal: ambiguous argument 'refs/heads/master..refs/heads/synced/master': unknown revision or path not in the working tree.
Which comes from Git.Branch.changed, but I'm not clear how the fast forward
configuration would prevent either of those refs from existing.
"""]]

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="dxld"
avatar="http://cdn.libravatar.org/avatar/742547a848e15c9f7fb381191c239141"
subject="comment 2"
date="2020-01-21T19:28:29Z"
content="""
Honestly I feel like the (perceived) semantics of sync are broken by this behaviour. I would expect git-annex to do what it has to to make what I asked for happen.
I agree that in general it's a good thing not to needlessly override git settings but for the sync command I really don't see any way that not merging can be considered sensible behaviour. To me as a user it just feels like I changed a setting completely unrelated to git-annex-sync and suddenly sync broke.
Consider this: the git-annex-sync(1) man page never actually mentions that it will run git-merge. On the other hand git-pull(1) is very forthcoming with the fact that it's just a shorthand for `git fetch; git merge` so it's obvious to me that settings affecting merge will affect git-pull, not so for sync.
I've been unable to sync my git-annex repos for a couple of months now because of this issue so firmly believe this is a serious usabiliy issue.
At the very least we have a documentation issue here. Though I would still argue the behaviour is bonkers :)
"""]]

View file

@ -0,0 +1,9 @@
[[!comment format=mdwn
username="t+gitannex@1d62779e8b54f30a854739f61542a6885167b01f"
nickname="t+gitannex"
avatar="http://cdn.libravatar.org/avatar/87c7f62c00e4a744aa500423e421120f"
subject="comment 6"
date="2020-02-06T11:07:34Z"
content="""
I'm able to reproduce this with git annex 7.20191230 and git 2.25.0 on Arch Linux, but I've had it on OSX in the past as well. The annex uses a v7 repository. I don't need to do anything besides unlocking some files and running git status. Unlocking 10 files, git status takes 3s and with 85 files it takes 20s, so it seems to scale linearly with the no of files. Happy to share more details about the repository if it's useful.
"""]]

View file

@ -1,3 +1,5 @@
[[!meta title="http remotes that require authentication are not yet supported"]]
It is not a ground shaking issue, but probably would be best to handle it more gracefully.
Initially mentioned while doing install using datalad. Account/permission is required to access this particular repo, ask Canadians for access if you don't have it yet Joey. credentials I guess got asked for and cached by git upon initial invocation, so upon subsequent calls didn't ask for any:
@ -143,4 +145,6 @@ git annex 7.20190819+git2-g908476a9b-1~ndall+1 and the same with bleeding edge 7
[[!meta author=yoh]]
[[!tag projects/dandi]]
> [[done]]; the error message is improved and also git remotes that need
> http basic auth to access will get password from `git credential`.
> --[[Joey]]

View file

@ -0,0 +1,31 @@
[[!comment format=mdwn
username="joey"
subject="""comment 3"""
date="2020-01-22T16:04:37Z"
content="""
git-annex could use `git credential` if the config download fails with
401 unauthorized and then retry with the credentials. (The git-lfs special
remote already does this.) And it would also need to do the same thing
when getting a key from the remote.
But that would not help with the https://git.bic.mni.mcgill.ca example,
apparently, because there's no 401, but a 302 redirect to a 200,
that is indistingishable from a successful download.
Yeah, when git-annex expects a git config, if it doesn't parse as one,
it could retry, asking for credentials.
But that seems asking for trouble: what if it fails to parse for
another reason, maybe the web server served up something other than the
expected config, maybe a captive portal got in the way. There would be a
username/password prompt that doesn't make sense to the user at all.
And if this happens in a key download, git-annex certianly has no way to
tell that what it downloaded is not intended as the content of a key,
short of verifying the content, and failure to verify certainly doesn't
justify prompting for a username/password.
So, I am not comfortable with falling back to ask for credentials unless
I've seen a http status code that indicates they are necessary.
And IMHO gitlab's use of a 302 redirect to a login page is a bug in
gitlab, and will need to be fixed there, or a better http server used.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="joey"
subject="""re: related: shouldn't git annex try external remotes to download config?"""
date="2020-01-22T16:31:16Z"
content="""
No, the external special remote protocol is not aimed at downloading git
config files. Anyway, this code path is never involved with using
special remotes; the uuid of a special remote is known and so there is no
need to ever download a git config file to discover it.
"""]]

View file

@ -54,3 +54,7 @@ PS ignore "ignores --json-error-messages" part of the subject -- was detected in
[[!meta author=yoh]]
[[!tag projects/datalad]]
> [[fixed|done]] what I consider to be the core issue in this bug report.
> --[[Joey]]

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-22T15:11:05Z"
content="""
This error message is not specific to a particular file in the repository, so if
git-annex get outputs it, it doesn't help for the error message to be
wrapped up in json. The actual purpose of --json-error messages is being
able to correlate a failure to eg, get a particular file with an error
message related to that action. Not in avoiding all possible stderr.
The actual bug here is that it dumps git config to stderr at all.
----
The extra newlines are output to stdout, so not a problem WRT stderr.
"""]]

View file

@ -0,0 +1,7 @@
[[!comment format=mdwn
username="joey"
subject="""comment 2"""
date="2020-01-22T17:04:09Z"
content="""
Error message has been improved.
"""]]

View file

@ -48,3 +48,7 @@ as a less bad alternative. Still, I'd like to find a better one.
--[[Joey]]
[[!tag confirmed]]
> [[done]], I think this was fixed long ago, git-annex no longer installs a
> sigint handler and I interrupt it all the time and it behaves as I would
> expect and not as shown here --[[Joey]]

View file

@ -44,3 +44,5 @@ $> git -C ~/proj/git-annex describe --contains 6.20180808-ga1327779a
[[!meta author=yoh]]
[[!tag projects/datalad]]
> I see no reason to have this open half a year and many many releases later, so
> [[done]] --[[Joey]]

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-01-23T18:59:53Z"
content="""
It kind of looks like this S3 remote is being used without login
credentials. That's not clear, because you could have environment variables
set or creds cached, or not.
Since it's "public: yes", it would fall back to the public url code path to
get the file when there are no creds.
There are a lot of ways that could fail. Eg, perhaps no publicurl has been
configured for the remote. But in that case (and many other cases),
an exception should be thrown and displayed.
I think I need to know how to reproduce this to get any further.
"""]]

View file

@ -0,0 +1,59 @@
### Please describe the problem.
I keep getting the warning about ssh caching being disabled, even when I explicitly enable it.
### What steps will reproduce the problem?
See log below
### What version of git-annex are you using? On what operating system?
7.20200204 on Amazon Linux 2
### Please provide any additional information below.
[[!format sh """
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
(just-git-annex-env) 13:00 [viral-ngs-benchmarks] $ git annex sync -c annex.sshcaching=true
On branch is-devel
Your branch is up to date with 'origin/is-devel'.
It took 8.50 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').
nothing to commit, working tree clean
commit ok
pull origin
You have enabled concurrency, but ssh connection caching is not enabled. This may result in multiple ssh processes prompting for pas\
swords at the same time.
ok
(just-git-annex-env) 13:00 [viral-ngs-benchmarks] $ uname -a
Linux ip-172-31-86-201.ec2.internal 4.14.165-131.185.amzn2.x86_64 #1 SMP Wed Jan 15 14:19:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
(just-git-annex-env) 13:02 [viral-ngs-benchmarks] $ git annex version
git-annex version: 7.20200204-g4db801d
build flags: Assistant Webapp Pairing S3 WebDAV Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite
dependency versions: aws-0.21.1 bloomfilter-2.0.1.0 cryptonite-0.25 DAV-1.3.3 feed-1.0.1.0 ghc-8.6.5 http-client-0.5.14 persistent-sql\
ite-2.9.3 torrent-10000.1.1 uuid-1.3.13 yesod-1.6.0
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_2\
24 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE\
2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224\
BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs hook external
operating system: linux x86_64
supported repository versions: 7
upgrade supported from repository versions: 0 1 2 3 4 5 6
local repository version: 7
# End of transcript or log.
"""]]
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
I've been using git-annex for 1.5 years to manage bioinformatics analyses. It's a very versatile and well-designed tool. I've been able to adapt it to many use cases;
the ability to easily write your own external backends has been especially helpful for that. The amount of work and thought that has gone into designing/building git-annex is
enormous, and very much appreciated.
> [[done]]; see comment --[[Joey]]

View file

@ -0,0 +1,25 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2020-02-14T17:48:41Z"
content="""
It seems you must have annex.jobs set to something, since concurrency
is enabled without any -J option, so the easy fix is just to unset that.
It kind of looks like your build of git-annex may have been made without
ssh connection caching support, which would happen if its configure program
detected at build time that ssh doesn't support it.
That would be unusual if so, all the builds of git-annex that I'm aware of
are made with ssh that does support it.
There are a couple of even less likely scenarios, like
`GIT_ANNEX_SSH_SOCKET_DIR` being set to a directory you can't write to.
I've changed the code to always say explicitly why ssh caching can't be
enabled. I also let annex.sshcaching override the build-time detection.
I guess that's enough to close this, unless it turns out its
reasons for not enabling it are not one of those I mentioned above, but
something entirely bogus.
"""]]

View file

@ -0,0 +1,10 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="ssh caching"
date="2020-02-14T20:53:27Z"
content="""
\"your build of git-annex may have been made without ssh connection caching support, which would happen if its configure program detected at build time that ssh doesn't support it\" -- yes, according to the [build log](https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5baca359d/_apis/build/builds/117561/logs/8). I can add an ssh dependency to the conda-forge git-annex recipe. It would be more flexible to not have that dependency and instead to have git-annex's behavior depend on the ssh available at runtime; but, I guess there's a reason it's a compile-time option?
Also, I don't have ssh prompting for passwords since I use ssh-agent, and having the warning shown every time is distracting. Maybe, a config option could be added to disable the warning?
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="yarikoptic"
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
subject="comment 3"
date="2020-02-15T04:45:01Z"
content="""
Ilya, you wrote \"the ability to easily write your own external **backends** has been especially helpful\". Did you mean \"external **remotes**\"? since \"external backends\" are yet [TODO AFAIK](https://git-annex.branchable.com/todo/external_backends/)
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="comment 4"
date="2020-02-16T04:05:11Z"
content="""
Yes, I meant external remotes.
"""]]

View file

@ -0,0 +1,21 @@
[[!comment format=mdwn
username="joey"
subject="""comment 5"""
date="2020-02-17T16:29:58Z"
content="""
I think the idea with detecting at build time is that if git-annex is being
built on a platform where ssh doesn't support it, eg because it's not
openssh but some other ssh implementation, it might as well compile out
support rather than fail obscurely when it tries to use it. And it's
uncommon for the systems where a program is built and used to have
different ssh implementations, so runtime probing would only slow it
down. (git-annex makes similar assumptions about eg, `cp --reflink` being
supported or not, and I don't think it's very unusual to probe OS features
at compile time.)
The warning seems useful, because here we've discovered that you have been
building git-annex without support for ssh caching all along!
The way to disable the warning is to set annex.sshcaching=true
(after [[!commit a4909470688287fc0009eaf82dab2e108bd214f1]]).
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="Ilya_Shlyakhter"
avatar="http://cdn.libravatar.org/avatar/1647044369aa7747829c38b9dcc84df0"
subject="git-annex build-time dependencies"
date="2020-02-18T19:33:32Z"
content="""
\"git-annex makes similar assumptions about eg, `cp --reflink` being supported or not, and I don't think it's very unusual to probe OS features at compile time\" -- this works well for package managers tied to specific distros. But consider something like [[install/conda]] that creates packages meant to be installed on a variety of systems. I can add a run-time dependency on `coreutils` to ensure that `cp --reflink` works, but I'm a bit wary about requiring git-annex users to replace all core utils with conda-forge ones. For one, these may be slower, being compiled for a generic architecture. For two, if they're not fully backwards-compatible, they make break some assumptions relied on by other parts of the distro.
"""]]

View file

@ -0,0 +1,4 @@
I installed git-annex in windows using the file git-annex-installer.exe, and now each time I'm starting my computer I get a message telling me that "C:\Program Files\Git\cmd\git-annex-autostart.vbs" cannot be found.
This is very annoying and I don't need git-annex to be started at startup. I looked in msconfig.exe and I didn't find any entry for git-annex. Is there a way to disable this?

View file

@ -0,0 +1,11 @@
[[!comment format=mdwn
username="jeanpmbox-456@7222359de8d1f37a7cf25a519e8faf90a9517b50"
nickname="jeanpmbox-456"
avatar="http://cdn.libravatar.org/avatar/164eb4254c5f83d95d3e0b810ff7aab9"
subject="comment 1"
date="2020-02-01T11:35:37Z"
content="""
I finally saw thanks to the file `Build/NullSoftInstaller.hs` and to NirSoft Program WhatInStartup that the startup script is located in `%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup`.
It would be nice to have an option to activate this or not in the installation.
"""]]