git-annex.git
4 years agocomment
Joey Hess [Tue, 8 Feb 2022 17:11:18 +0000 (13:11 -0400)]
comment

4 years agoclose wontfix
Joey Hess [Tue, 8 Feb 2022 17:03:58 +0000 (13:03 -0400)]
close wontfix

4 years agodocument another behavior of --auto
Joey Hess [Tue, 8 Feb 2022 16:22:34 +0000 (12:22 -0400)]
document another behavior of --auto

4 years agoadd a test case for transition propagation
Joey Hess [Mon, 7 Feb 2022 18:58:15 +0000 (14:58 -0400)]
add a test case for transition propagation

As was fixed in 6992250d63484a6cf3e5d22b9137d23a3fe1a63e.
It took 2-3 years to notice that bug, so this part of git-annex needs
test cases like this.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
4 years agofix obviously wrong attoparsec parser
Joey Hess [Mon, 7 Feb 2022 18:09:43 +0000 (14:09 -0400)]
fix obviously wrong attoparsec parser

takeByteString can only be used at the end of a parser, not before other
input. This was a dumb enough mistake that I audited the rest of the
code base for similar mistakes. Pity that attoparsec cannot avoid it at
the type level.

Fixes git-annex forget propagation between repositories. (reversion
introduced in version 7.20190122)

Sponsored-by: Brock Spratlen on Patreon
4 years agobug report followup
Joey Hess [Mon, 7 Feb 2022 17:12:14 +0000 (13:12 -0400)]
bug report followup

4 years agocomment
Joey Hess [Mon, 7 Feb 2022 16:42:27 +0000 (12:42 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 7 Feb 2022 16:34:00 +0000 (12:34 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 7 Feb 2022 16:33:23 +0000 (12:33 -0400)]
comment

4 years agocomment and bug report
Joey Hess [Mon, 7 Feb 2022 16:27:50 +0000 (12:27 -0400)]
comment and bug report

4 years agocomment
Joey Hess [Mon, 7 Feb 2022 16:17:18 +0000 (12:17 -0400)]
comment

4 years agoAdded a comment
jonas@ab8487518c600ac0c785f4f6ca641c219f2bcfdc [Sun, 6 Feb 2022 23:30:17 +0000 (23:30 +0000)]
Added a comment

4 years ago(no commit message)
jonas@ab8487518c600ac0c785f4f6ca641c219f2bcfdc [Sun, 6 Feb 2022 23:29:02 +0000 (23:29 +0000)]

4 years agoremoved
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 08:09:20 +0000 (08:09 +0000)]
removed

4 years agoAdded a comment
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 07:58:55 +0000 (07:58 +0000)]
Added a comment

4 years agoAdded a comment
sh@243262e07058e7517194e54030ce421ae984ea08 [Fri, 4 Feb 2022 07:58:20 +0000 (07:58 +0000)]
Added a comment

4 years ago(no commit message)
MatusGoljer1 [Thu, 3 Feb 2022 23:28:54 +0000 (23:28 +0000)]

4 years agoAdded a comment
jwrauch [Wed, 2 Feb 2022 20:48:56 +0000 (20:48 +0000)]
Added a comment

4 years agoadded question on git-annex memory usage
Ilya_Shlyakhter [Wed, 2 Feb 2022 16:54:29 +0000 (16:54 +0000)]
added question on git-annex memory usage

4 years agoPass --no-textconv when running git diff internally
Joey Hess [Tue, 1 Feb 2022 17:43:18 +0000 (13:43 -0400)]
Pass --no-textconv when running git diff internally

Seems that --no-ext-diff and -c diff.external= are not enough to disable
external diff command when gitattributes textconv specifies it.

I'm pretty sure that --no-ext-diff and -c diff.external= are not both
needed, but not 100%. Something about -G may need the latter to fully
disable diffs in some cases. So kept that part as it was.

Sponsored-by: Dartmouth College's Datalad project
4 years agocomment
Joey Hess [Tue, 1 Feb 2022 17:29:06 +0000 (13:29 -0400)]
comment

4 years ago(no commit message)
adina.wagner@2a4cac6443aada2bd2a329b8a33f4a7b87cc8eff [Tue, 1 Feb 2022 12:27:48 +0000 (12:27 +0000)]

4 years ago(no commit message)
jwrauch [Mon, 31 Jan 2022 19:41:42 +0000 (19:41 +0000)]

4 years agocomment
Joey Hess [Mon, 31 Jan 2022 17:42:37 +0000 (13:42 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 31 Jan 2022 17:36:45 +0000 (13:36 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agocomment
Joey Hess [Mon, 31 Jan 2022 17:36:32 +0000 (13:36 -0400)]
comment

4 years agoadb: Avoid find failing with "Argument list too long"
Joey Hess [Mon, 31 Jan 2022 17:19:09 +0000 (13:19 -0400)]
adb: Avoid find failing with "Argument list too long"

The "+" argument only runs the command once, so is not safe to use. Using
";" instead would have been the simplest fix, but also the slowest.

Since my phone has an xargs that supports -0, I piped find to xargs
instead. Unsure how portable this will be, perhaps some android's don't
have xargs -0 or find -printf to send null terminated output.

The business with pipefail is necessary to make a failure of find cause the
import to fail. Probably this works on all androids, but if not, it will
probably just result in a failure of find being ignored. It would be
possible to make ignorefinderror just disable setting pipefail, but then
if some android has a shell that has pipefail enabled by default, ignorefinderror
would not work, so I kept the || true approach for that.

Sponsored-by: Max Thoursie on Patreon
4 years agocomment
Joey Hess [Mon, 31 Jan 2022 16:39:54 +0000 (12:39 -0400)]
comment

4 years agoAdded a comment: conda updated
Ilya_Shlyakhter [Mon, 31 Jan 2022 16:28:52 +0000 (16:28 +0000)]
Added a comment: conda updated

4 years ago(no commit message)
chewie@a4440559aa1bc84271fa9c8ef754e402afbd7d0d [Sun, 30 Jan 2022 18:14:47 +0000 (18:14 +0000)]

4 years agoAdded a comment
amerlyq [Sat, 29 Jan 2022 15:59:31 +0000 (15:59 +0000)]
Added a comment

4 years agoAdded a comment
Ilya_Shlyakhter [Fri, 28 Jan 2022 19:49:56 +0000 (19:49 +0000)]
Added a comment

4 years agoAdded a comment: Thanks!
jbwexler@31214ed76f174318e7628aefcf8404d64627aaaa [Fri, 28 Jan 2022 14:20:46 +0000 (14:20 +0000)]
Added a comment: Thanks!

4 years agoadd news item for git-annex 10.20220127
Joey Hess [Thu, 27 Jan 2022 18:54:10 +0000 (14:54 -0400)]
add news item for git-annex 10.20220127

4 years agoreleasing package git-annex version 10.20220127
Joey Hess [Thu, 27 Jan 2022 18:53:22 +0000 (14:53 -0400)]
releasing package git-annex version 10.20220127

4 years agoimprove display of subframes
Joey Hess [Thu, 27 Jan 2022 18:36:40 +0000 (14:36 -0400)]
improve display of subframes

4 years agoupdate
Joey Hess [Thu, 27 Jan 2022 17:51:16 +0000 (13:51 -0400)]
update

4 years agocomment
Joey Hess [Thu, 27 Jan 2022 16:58:36 +0000 (12:58 -0400)]
comment

4 years ago(no commit message)
jbwexler@31214ed76f174318e7628aefcf8404d64627aaaa [Wed, 26 Jan 2022 19:41:13 +0000 (19:41 +0000)]

4 years agoAdded a comment: comment regarding "default" version of the repo etc
yarikoptic [Wed, 26 Jan 2022 18:40:50 +0000 (18:40 +0000)]
Added a comment: comment regarding "default" version of the repo etc

4 years agocomment
Joey Hess [Wed, 26 Jan 2022 17:26:55 +0000 (13:26 -0400)]
comment

4 years agoclarify --version behavior on upgrade
Joey Hess [Wed, 26 Jan 2022 17:25:01 +0000 (13:25 -0400)]
clarify --version behavior on upgrade

eg, git-annex init --version=9 does not use v10 even though v9 can
automatically upgrade to v10, because v9 is a supported version. It's
only unsupported versions that make a newer version be used.

4 years agohave v9 autoupgrade to v10
Joey Hess [Wed, 26 Jan 2022 17:16:06 +0000 (13:16 -0400)]
have v9 autoupgrade to v10

This was right before commit a27776f6026082683ab40d88745f1cc6242fca6c,
which made v6 v7 autoupgrade to v8 but not yet to v10.

Sponsored-by: Dartmouth College's Datalad project
4 years agoreject batch options combined with non-batch options
Joey Hess [Wed, 26 Jan 2022 16:59:55 +0000 (12:59 -0400)]
reject batch options combined with non-batch options

Reject combinations of --batch (or --batch-keys) with options like --all or
--key or with filenames.

Most commands ignored the non-batch items when batch mode was enabled.

For some reason, addurl and dropkey both processed first the specified
non-batch items, followed by entering batch mode. Changed them to also
error out, for consistency.

Sponsored-by: Dartmouth College's Datalad project
4 years agocomment
Joey Hess [Wed, 26 Jan 2022 16:03:16 +0000 (12:03 -0400)]
comment

4 years agoinitial whining about --batch-keys and --all
yarikoptic [Wed, 26 Jan 2022 14:38:35 +0000 (14:38 +0000)]
initial whining about --batch-keys and --all

4 years agoAdded a comment
yarikoptic [Tue, 25 Jan 2022 18:37:56 +0000 (18:37 +0000)]
Added a comment

4 years agocomment
Joey Hess [Tue, 25 Jan 2022 18:03:22 +0000 (14:03 -0400)]
comment

4 years agoAdded a comment
yarikoptic [Tue, 25 Jan 2022 18:00:17 +0000 (18:00 +0000)]
Added a comment

4 years agoinit --version=6 upgrade to 8 not yet 10
Joey Hess [Tue, 25 Jan 2022 17:52:42 +0000 (13:52 -0400)]
init --version=6 upgrade to 8 not yet 10

autoUpgradeableVersions had latestVersion (10), but it did not make
sense for asking for old version 6 to get version 10, while asking for
version 8 got version 8. So use defaultVersion (8) instead.

Sponsored-by: Dartmouth College's Datalad project
4 years agoadd question
Joey Hess [Tue, 25 Jan 2022 17:35:00 +0000 (13:35 -0400)]
add question

4 years agocomment
Joey Hess [Tue, 25 Jan 2022 17:20:23 +0000 (13:20 -0400)]
comment

4 years agoclose; out of scope
Joey Hess [Tue, 25 Jan 2022 16:39:46 +0000 (12:39 -0400)]
close; out of scope

4 years agocomment
Joey Hess [Tue, 25 Jan 2022 16:38:02 +0000 (12:38 -0400)]
comment

4 years agocomment
Joey Hess [Mon, 24 Jan 2022 19:16:14 +0000 (15:16 -0400)]
comment

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 24 Jan 2022 19:10:56 +0000 (15:10 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoclarify
Joey Hess [Mon, 24 Jan 2022 19:00:55 +0000 (15:00 -0400)]
clarify

4 years agoinitial report about autoupgrade to 10 instead of 8
yarikoptic [Mon, 24 Jan 2022 18:50:14 +0000 (18:50 +0000)]
initial report about autoupgrade to 10 instead of 8

4 years agofix name of option
Joey Hess [Fri, 21 Jan 2022 18:51:57 +0000 (14:51 -0400)]
fix name of option

4 years agodeal with which being deprecated in Debian
Joey Hess [Fri, 21 Jan 2022 18:51:32 +0000 (14:51 -0400)]
deal with which being deprecated in Debian

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 21 Jan 2022 18:23:19 +0000 (14:23 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agofix failing readonly test case
Joey Hess [Fri, 21 Jan 2022 17:49:31 +0000 (13:49 -0400)]
fix failing readonly test case

The problem is that withContentLockFile, in a v8 repo, has to take a shared
lock of `.git/annex/content.lck`. But, in a readonly repository, if that
file does not yet exist, it cannot lock it. And while it will sometimes
work to `chmod +r .git/annex`, the repository might be readonly due to
being owned by another user, or due to being mounted readonly.

So, it seems that the only solution is to use some other file than
`.git/annex/content.lck` as the lock file. The inode sential file
was almost the only option that should always exist. (And if it somehow
does not exist, creating an empty one for locking will be ok.)

Wow, what a hack!

Sponsored-by: Dartmouth College's Datalad project
4 years agoupdate
Joey Hess [Fri, 21 Jan 2022 17:16:14 +0000 (13:16 -0400)]
update

4 years agodon't fail git-annex upgrade to v10
Joey Hess [Fri, 21 Jan 2022 17:15:32 +0000 (13:15 -0400)]
don't fail git-annex upgrade to v10

That left the repo in v8, but with filter.annex.process set. Instead,
only warn, and defer the v10 upgrade.

Sponsored-by: Dartmouth College's Datalad project
4 years agoenable filter.annex.process in v9
Joey Hess [Fri, 21 Jan 2022 17:11:18 +0000 (13:11 -0400)]
enable filter.annex.process in v9

This has tradeoffs, but is generally a win, and users who it causes git add to
slow down unacceptably for can just disable it again.

It needed to happen in an upgrade, since there are git-annex versions
that do not support it, and using such an old version with a v8
repository with filter.annex.process set will cause bad behavior.
By enabling it in v9, it's guaranteed that any git-annex version that
can use the repository does support it. Although, this is not a perfect
protection against problems, since an old git-annex version, if it's
used with a v9 repository, will cause git add to try to run
git-annex filter-process, which will fail. But at least, the user is
unlikely to have an old git-annex in path if they are using a v9
repository, since it won't work in that repository.

Sponsored-by: Dartmouth College's Datalad project
4 years agoclose
Joey Hess [Fri, 21 Jan 2022 17:00:28 +0000 (13:00 -0400)]
close

4 years agodetect v10 upgrade while running
Joey Hess [Fri, 21 Jan 2022 16:56:07 +0000 (12:56 -0400)]
detect v10 upgrade while running

Capstone of the v10 upgrade process.

Tested with a git-annex drop in a v8 repo that had a local v8 remote.
Upgrading the repo to v10 (with --force) immedaitely caused it to notice
and switch over to v10 locking. Upgrading the remote also caused it to
switch over when operating on the remote.

The InodeCache makes this fairly efficient, just an added stat call per
lock of an object file. After the v10 upgrade, there is no more
overhead.

Sponsored-by: Dartmouth College's Datalad project
4 years agoupdate, v9 upgrade not yet automatic
Joey Hess [Fri, 21 Jan 2022 16:33:51 +0000 (12:33 -0400)]
update, v9 upgrade not yet automatic

and v9 does not have full upgrade locking

4 years agoupdate for v10
Joey Hess [Fri, 21 Jan 2022 16:32:44 +0000 (12:32 -0400)]
update for v10

Sponsored-by: Dartmouth College's Datalad project
4 years agofix crash after drop in v10
Joey Hess [Thu, 20 Jan 2022 18:00:19 +0000 (14:00 -0400)]
fix crash after drop in v10

After cleaning up the lock file, the content directory is gone, so
freezing it failed.

Sponsored-by: Dartmouth College's Datalad project
4 years agocontinue to use v8 by default for now, unless upgraded
Joey Hess [Thu, 20 Jan 2022 15:56:05 +0000 (11:56 -0400)]
continue to use v8 by default for now, unless upgraded

Since it's easy to keep supporting v8, using it for a while (eg a few
months) will give users time to upgrade git-annex installations, before
it upgrades their repository to v9.

This commit should be reverted once ready to start upgrading
repositories by default.

Sponsored-by: Dartmouth College's Datalad project
4 years agoprevent manual git-annex upgrade to v10 when unsafe
Joey Hess [Thu, 20 Jan 2022 15:49:56 +0000 (11:49 -0400)]
prevent manual git-annex upgrade to v10 when unsafe

Allow --force

Sponsored-by: Dartmouth College's Datalad project
4 years agoautomatic upgrade from v8 to v9
Joey Hess [Thu, 20 Jan 2022 15:39:36 +0000 (11:39 -0400)]
automatic upgrade from v8 to v9

Sponsored-by: Dartmouth College's Datalad project
4 years agov10 upgrade locking
Joey Hess [Thu, 20 Jan 2022 15:33:14 +0000 (11:33 -0400)]
v10 upgrade locking

The v10 upgrade should almost be safe now. What remains to be done is
notice when the v10 upgrade has occurred, while holding the shared lock,
and switch to using v10 lock files.

Sponsored-by: Dartmouth College's Datalad project
4 years ago(no commit message)
mih [Wed, 19 Jan 2022 21:07:20 +0000 (21:07 +0000)]

4 years agoupdate on status
Joey Hess [Wed, 19 Jan 2022 19:53:14 +0000 (15:53 -0400)]
update on status

4 years agoadd upgrade.log
Joey Hess [Wed, 19 Jan 2022 19:51:04 +0000 (15:51 -0400)]
add upgrade.log

The upgrade from V9 uses this to avoid an automatic upgrade until 1 year
after the V9 update. It can also be used in future such situations.

Sponsored-by: Dartmouth College's Datalad project
4 years agosplit upgrade into v9 and v10
Joey Hess [Wed, 19 Jan 2022 17:06:31 +0000 (13:06 -0400)]
split upgrade into v9 and v10

v10 will run 1 year after the upgrade to v9, to give time for any v8
processes to die. Until that point, the v10 upgrade will be tried by
every process but deferred, so added support for deferring upgrades.

The upgrade prevention lock file that will be used by v10 is not yet
implemented, so it does not yet defer.

Sponsored-by: Dartmouth College's Datalad project
4 years agofix spelling of upgradeable
Joey Hess [Wed, 19 Jan 2022 16:14:50 +0000 (12:14 -0400)]
fix spelling of upgradeable

4 years agoMerge branch 'master' into v9-locking
Joey Hess [Wed, 19 Jan 2022 16:01:49 +0000 (12:01 -0400)]
Merge branch 'master' into v9-locking

4 years agocommeent
Joey Hess [Wed, 19 Jan 2022 15:56:00 +0000 (11:56 -0400)]
commeent

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 19 Jan 2022 15:51:11 +0000 (11:51 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoclose
Joey Hess [Wed, 19 Jan 2022 15:49:37 +0000 (11:49 -0400)]
close

4 years agoAdded a comment: Now it's working normally again
ainohzoa [Fri, 14 Jan 2022 21:10:13 +0000 (21:10 +0000)]
Added a comment: Now it's working normally again

4 years agoAdded a comment: nested git repositories are git submodules
https://christian.amsuess.com/chrysn [Fri, 14 Jan 2022 13:02:37 +0000 (13:02 +0000)]
Added a comment: nested git repositories are git submodules

4 years ago(no commit message)
ainohzoa [Fri, 14 Jan 2022 00:37:24 +0000 (00:37 +0000)]

4 years agodelete content lock file safely after shared lock
Joey Hess [Thu, 13 Jan 2022 18:54:57 +0000 (14:54 -0400)]
delete content lock file safely after shared lock

Upgrade the shared lock to an exclusive lock, and then delete the
lock file. If there is another process still holding the shared lock,
the first process will fail taking the exclusive lock, and not delete
the lock file; then the other process will later delete it.

Note that, in the time period where the exclusive lock is held, other
attempts to lock the content in place would fail. This is unlikely to be
a problem since it's a short period.

Other attempts to lock the content for removal would also fail in that
time period, but that's no different than a removal failing because
content is locked to prevent removal.

Sponsored-by: Dartmouth College's Datalad project
4 years agoclean empty object directories after deleting content lock file
Joey Hess [Thu, 13 Jan 2022 18:19:36 +0000 (14:19 -0400)]
clean empty object directories after deleting content lock file

When dropping content, this was already done after deleting the content
file, but the lock file prevents deleting the directories. So, try the
deletion again.

This does mean there's a small added overhead of a failed rmdir().

Sponsored-by: Dartmouth College's Datalad project
4 years agoAdded a comment
Lukey [Thu, 13 Jan 2022 18:19:32 +0000 (18:19 +0000)]
Added a comment

4 years agofix logic that was not inverted after all
Joey Hess [Thu, 13 Jan 2022 18:11:36 +0000 (14:11 -0400)]
fix logic that was not inverted after all

oops

4 years agoAdded a comment
Lukey [Thu, 13 Jan 2022 18:10:22 +0000 (18:10 +0000)]
Added a comment

4 years ago(no commit message)
Lukey [Thu, 13 Jan 2022 18:08:25 +0000 (18:08 +0000)]

4 years agodelete content lock file safely on drop, keep after shared lock
Joey Hess [Thu, 13 Jan 2022 17:58:58 +0000 (13:58 -0400)]
delete content lock file safely on drop, keep after shared lock

This seems to be the best that can be done to avoid forever accumulating
the new content lock files, while being fully safe.

This is fixing code paths that have lingered unused since direct mode!
And direct mode seems to have been buggy in this area, since the content
lock file was deleted on unlock. But with a shared lock, there could be
another process that also had the lock file locked, and deleting it
invalidates that lock.

So, the lock file cannot be deleted after a shared lock. At least, not
wihout taking an exclusive lock first.. which I have not pursued yet but may.

After an exclusive lock, the lock file can be deleted. But there is
still a potential race, where the exclusive lock is held, and another
process gets the file open, just as the exclusive lock is dropped and
the lock file is deleted. That other process would be left with a file
handle it can take a shared lock of, but with no effect since the file
is deleted. Annex.Transfer also deletes lock files, and deals with this
same problem by using checkSaneLock, which is how I've dealt with it
here.

Sponsored-by: Dartmouth College's Datalad project
4 years agofix inverted logic
Joey Hess [Thu, 13 Jan 2022 17:28:57 +0000 (13:28 -0400)]
fix inverted logic

Now the content lock files are used in v9. However, I am not yet certian
they are correct. In particular, lockContentUsing deletes
the content lock file on unlock. But what if there's a shared lock
by another process? That seems like it would discard that lock too!

(Windows seems like it would not have the same problem, because as the
comment in there says, "Can't delete a locked file on Windows".
So if another process has a shared lock, removing it presumably fails.)

Sponsored-by: Dartmouth College's Datalad project
4 years agov9 upgrade implemented
Joey Hess [Thu, 13 Jan 2022 17:25:10 +0000 (13:25 -0400)]
v9 upgrade implemented

Seems to work ok. Unsure yet about the actual locking changes being
correct.

This is not the end of the story with upgrades, because it is unsafe for
this upgrade as implemented to run in a repository where an old
git-annex process is already running. The old process would use the old
locking method, and not notice files locked by the new, and this could
result in data loss. This problem will need to be dealt with before this
branch is suitable for merging.

Sponsored-by: Dartmouth College's Datalad project
4 years agomove code from Command.Fsck
Joey Hess [Thu, 13 Jan 2022 17:24:50 +0000 (13:24 -0400)]
move code from Command.Fsck

Sponsored-by: Dartmouth College's Datalad project
4 years ago(no commit message)
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Thu, 13 Jan 2022 03:59:44 +0000 (03:59 +0000)]

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 12 Jan 2022 19:55:31 +0000 (15:55 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoliking this solution pretty well
Joey Hess [Wed, 12 Jan 2022 19:54:58 +0000 (15:54 -0400)]
liking this solution pretty well

4 years agoAdded a comment
yarikoptic [Wed, 12 Jan 2022 19:33:16 +0000 (19:33 +0000)]
Added a comment