git-annex.git
5 years ago(no commit message)
jwodder [Wed, 30 Jun 2021 13:16:19 +0000 (13:16 +0000)]

5 years agoAdded a comment
falsifian [Wed, 30 Jun 2021 00:09:23 +0000 (00:09 +0000)]
Added a comment

5 years agoAdded a comment
Atemu [Tue, 29 Jun 2021 22:57:39 +0000 (22:57 +0000)]
Added a comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 29 Jun 2021 17:30:58 +0000 (13:30 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoAdded a comment
yarikoptic [Tue, 29 Jun 2021 17:27:35 +0000 (17:27 +0000)]
Added a comment

5 years agoavoid using CopyFile
Joey Hess [Tue, 29 Jun 2021 17:21:21 +0000 (13:21 -0400)]
avoid using CopyFile

If .git/config symlinks are ever a thing, this will handle them better.

But mostly, this is to avoid git-repair needing to include CopyFile,
which would complicate it unduely.

5 years agorepair: Fix reversion in version 8.20200522 that prevented fetching missing objects...
Joey Hess [Tue, 29 Jun 2021 17:15:15 +0000 (13:15 -0400)]
repair: Fix reversion in version 8.20200522 that prevented fetching missing objects from remotes

In commit dfc4e641b5c14418ec1c1b45bed1325cf8cbb0c3 git repair was changed
to use remote name, not url, when fetching. But it fetches into a temporary
git repo, which doesn't have remotes configured. Oops.

(In my defense, that commit was made just as covid lockdown started. But
testing? Urk.)

Sponsored-by: Mark Reidenbach on Patreon
5 years agomake repair interruption safe
Joey Hess [Tue, 29 Jun 2021 16:57:19 +0000 (12:57 -0400)]
make repair interruption safe

Fixed bug that interrupting git-annex repair (or assistant) while it was
fixing repository corruption would lose objects that were contained in pack
files.

Unpack all pack files and move objects into place *before* deleting the
pack files. The old approach moved the pack files to a temp directory
before unpacking them, which was not interruption safe.

Sponsored-By: Jochen Bartl on Patreon
5 years agosome analysis
Joey Hess [Mon, 28 Jun 2021 19:00:21 +0000 (15:00 -0400)]
some analysis

5 years agoclose
Joey Hess [Mon, 28 Jun 2021 17:14:19 +0000 (13:14 -0400)]
close

5 years agoclose
Joey Hess [Mon, 28 Jun 2021 17:11:13 +0000 (13:11 -0400)]
close

5 years agoclose
Joey Hess [Mon, 28 Jun 2021 17:08:57 +0000 (13:08 -0400)]
close

5 years agoclose
Joey Hess [Mon, 28 Jun 2021 17:05:26 +0000 (13:05 -0400)]
close

5 years agocomment
Joey Hess [Mon, 28 Jun 2021 16:54:41 +0000 (12:54 -0400)]
comment

5 years agoavoid using cp --reflink=auto on windows
Joey Hess [Mon, 28 Jun 2021 16:51:40 +0000 (12:51 -0400)]
avoid using cp --reflink=auto on windows

Sponsored-by: Dartmouth College's Datalad project
5 years agoaddurl, importfeed: Added --no-raw option
Joey Hess [Sun, 27 Jun 2021 15:13:38 +0000 (11:13 -0400)]
addurl, importfeed: Added --no-raw option

Forces eg, download with youtube-dl without falling back to raw download.

Since youtube-dl failing due to an url not being supported is difficult to
distinguish from it failing due to being blocked in some way, this can be
useful to avoid the fallback of git-annex downloading the raw web page and
adding that.

Since --raw also prevents using special remotes, --no-raw also
allows special remote downloads. Although it's always possible that some
special remote may claim an url and fall back to raw download of the
content, which --no-raw cannot prevent.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
5 years agodropping unused marks as dead
Joey Hess [Fri, 25 Jun 2021 19:22:05 +0000 (15:22 -0400)]
dropping unused marks as dead

Dropping an object with drop --unused or dropunused will mark it as
dead, preventing fsck --all from complaining about it after it's been
dropped from all repositories.

If another repository still has a copy, it won't be treated as dead
until it's also dropped from there.

The drop has to use --unused, can't be --key or something else, because
this indicates that the user has recently ran git-annex unused. If it
checked the unused log on every drop, bad things would happen when the
unused log was out of date, eg a file used to be unused but then got
re-added. Marking such a file as dead could be confusing. When the user
uses --unused/dropunused, they must consider the unused information to be
up-to-date.

The particular workflow this enables is:

git annex add foo
git annex unannex foo
git annex unused
git annex drop --unused / dropunused
git annex fsck --all # no warnings

The docs for git-annex unannex say to use git-annex unused and dropunused,
so the user should be pointed in this direction when they want to undo an
accidental add.

Sponsored-by: Brock Spratlen on Patreon
5 years agofix innacuracy
Joey Hess [Fri, 25 Jun 2021 18:48:36 +0000 (14:48 -0400)]
fix innacuracy

--all does not skip dead keys for all commands;
git-annex fsck checks if a key is dead and skips it.

5 years agocomment
Joey Hess [Fri, 25 Jun 2021 18:15:14 +0000 (14:15 -0400)]
comment

5 years agocomment
Joey Hess [Fri, 25 Jun 2021 17:52:59 +0000 (13:52 -0400)]
comment

5 years agocomment
Joey Hess [Fri, 25 Jun 2021 17:33:27 +0000 (13:33 -0400)]
comment

5 years agoImprove display of errors when transfers fail
Joey Hess [Fri, 25 Jun 2021 17:04:17 +0000 (13:04 -0400)]
Improve display of errors when transfers fail

Transfers from or to a local git repo could fail without a reason being
given, if the content failed to verify, or if the object file's stat
changed while it was being copied. Now display messages in these cases.

Sponsored-by: Jack Hill on Patreon
5 years agocomment
Joey Hess [Fri, 25 Jun 2021 16:13:25 +0000 (12:13 -0400)]
comment

5 years agocomment
Joey Hess [Fri, 25 Jun 2021 16:11:05 +0000 (12:11 -0400)]
comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 25 Jun 2021 16:06:49 +0000 (12:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoavoid using temp file size when deciding whether to retry failed transfer
Joey Hess [Fri, 25 Jun 2021 15:53:28 +0000 (11:53 -0400)]
avoid using temp file size when deciding whether to retry failed transfer

When stall detection is enabled, and a transfer is in progress,
it would display a doubled message:

(transfer already in progress, or unable to take transfer lock) (transfer already in progress, or unable to take transfer lock)

That happened because the forward retry decider had a start size of 0,
and an end size of whatever amount of the object the other process had
downloaded. So it incorrectly thought that the transferrer process had
made progress, when it had in fact immediately given up with that
message.

Instead, use the reported value from the progress meter. If a remote
does not report progress, this will mean it doesn't forward retry, in a
situation where it used to. But most remotes do report progress, and any
remote that does not can be fixed to, by using watchFileSize when
downloading. Also, some remotes might preallocate the temp file (eg
bittorrent), so relying on statting its size at this level to get
progress is dubious.

The same change was made to Annex/Transfer.hs, although only
Annex/TransferrerPool.hs needed to be changed to avoid the duplicate
message.

(An alternate fix would have been to start the retry decider with the
size of the object file before downloading begins, rather than 0.)

Sponsored-by: Brett Eisenberg on Patreon
5 years agoAdded a comment
strmd [Fri, 25 Jun 2021 15:07:55 +0000 (15:07 +0000)]
Added a comment

5 years agoadded suggestion re: hardening git-annex against interruptions
Ilya_Shlyakhter [Thu, 24 Jun 2021 18:16:43 +0000 (18:16 +0000)]
added suggestion re: hardening git-annex against interruptions

5 years agoAdded a comment: resolving merge conflicts
Ilya_Shlyakhter [Thu, 24 Jun 2021 18:03:40 +0000 (18:03 +0000)]
Added a comment: resolving merge conflicts

5 years agoAdded a comment
Lukey [Thu, 24 Jun 2021 17:43:36 +0000 (17:43 +0000)]
Added a comment

5 years agoAdded a comment: thanks
Ilya_Shlyakhter [Thu, 24 Jun 2021 16:40:48 +0000 (16:40 +0000)]
Added a comment: thanks

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 23 Jun 2021 21:31:09 +0000 (17:31 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agocomment
Joey Hess [Wed, 23 Jun 2021 21:30:50 +0000 (17:30 -0400)]
comment

5 years agoAdded a comment: recovering from sqlite db corruption
Ilya_Shlyakhter [Wed, 23 Jun 2021 18:45:47 +0000 (18:45 +0000)]
Added a comment: recovering from sqlite db corruption

5 years agocomment
Joey Hess [Wed, 23 Jun 2021 17:19:34 +0000 (13:19 -0400)]
comment

5 years agoclose
Joey Hess [Wed, 23 Jun 2021 16:59:00 +0000 (12:59 -0400)]
close

5 years agocomment
Joey Hess [Wed, 23 Jun 2021 16:54:48 +0000 (12:54 -0400)]
comment

5 years agocomment and close
Joey Hess [Wed, 23 Jun 2021 16:53:18 +0000 (12:53 -0400)]
comment and close

5 years agoAdded a comment: an alternative
datamanager [Wed, 23 Jun 2021 01:29:23 +0000 (01:29 +0000)]
Added a comment: an alternative

5 years ago(no commit message)
Lukey [Tue, 22 Jun 2021 18:40:56 +0000 (18:40 +0000)]

5 years agoAdded a comment: old comments
Ilya_Shlyakhter [Tue, 22 Jun 2021 14:03:24 +0000 (14:03 +0000)]
Added a comment: old comments

5 years agofix windows build
Joey Hess [Tue, 22 Jun 2021 13:46:06 +0000 (09:46 -0400)]
fix windows build

5 years ago(no commit message)
jwodder [Tue, 22 Jun 2021 13:21:17 +0000 (13:21 +0000)]

5 years agoAdded annex.freezecontent-command and annex.thawcontent-command configs
Joey Hess [Mon, 21 Jun 2021 18:40:20 +0000 (14:40 -0400)]
Added annex.freezecontent-command and annex.thawcontent-command configs

Freeze first sets the file perms, and then runs
freezecontent-command. Thaw runs thawcontent-command before
restoring file permissions. This is in case the freeze command
prevents changing file perms, as eg setting a file immutable does.
Also, changing file perms tends to mess up previously set ACLs.

git-annex init's probe for crippled filesystem uses them, so if file perms
don't work, but freezecontent-command manages to prevent write to a file,
it won't treat the filesystem as crippled.

When the the filesystem has been probed as crippled, the hooks are not
used, because there seems to be no point then; git-annex won't be relying
on locking annex objects down. Also, this avoids them being run when the
file perms have not been changed, in case they somehow rely on
git-annex's setting of the file perms in order to work.

Sponsored-by: Dartmouth College's Datalad project
5 years agoremove dead code
Joey Hess [Mon, 21 Jun 2021 17:54:12 +0000 (13:54 -0400)]
remove dead code

5 years agocomment
Joey Hess [Mon, 21 Jun 2021 17:52:50 +0000 (13:52 -0400)]
comment

5 years agotag datalad
Joey Hess [Mon, 21 Jun 2021 17:23:51 +0000 (13:23 -0400)]
tag datalad

at yoh's request

5 years agocomment
Joey Hess [Mon, 21 Jun 2021 17:21:43 +0000 (13:21 -0400)]
comment

5 years agoremove old android comments/bug reports
Joey Hess [Mon, 21 Jun 2021 17:21:27 +0000 (13:21 -0400)]
remove old android comments/bug reports

5 years agoremove comment I made to the wrong place
Joey Hess [Mon, 21 Jun 2021 17:13:28 +0000 (13:13 -0400)]
remove comment I made to the wrong place

I am not sure what forum thread I was intending to comment on

5 years agoremove old closed bugs and todo items to speed up wiki updates and reduce size
Joey Hess [Mon, 21 Jun 2021 17:10:13 +0000 (13:10 -0400)]
remove old closed bugs and todo items to speed up wiki updates and reduce size

Remove closed bugs and todos that were last edited or commented before 2020.

Except for ones tagged projects/* since projects like datalad want to keep
around records of old deleted bugs longer.

Command line used:

for f in $(grep -l '|done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2020 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2020 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
for f in $(grep -l '\[\[done\]\]' -- ./*.mdwn); do if ! grep -q "projects/" "$f"; then d="$(echo "$f" | sed 's/.mdwn$//')"; if [ -z "$(git log --since=01-01-2020 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2020 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done

5 years agoremove unused import
Joey Hess [Mon, 21 Jun 2021 16:32:36 +0000 (12:32 -0400)]
remove unused import

5 years agopush synced/master before synced/git-annex
Joey Hess [Mon, 21 Jun 2021 16:32:21 +0000 (12:32 -0400)]
push synced/master before synced/git-annex

sync: Partly work around github behavior that first branch to be pushed to
a new repository is assumed to be the head branch, by not pushing
synced/git-annex first.

github expects master (or whatever the name is) to be pushed first, but
git-annex sync can't, because it's got to also support pushes to non-bare
repos where pushing master fails, as explained in the big comment. So
pushing synced/master is not entirely a fix, but at least it makes github
default to a branch with the stuff the user expects in it, not a bunch of
annex log files.

Aside from fixing github to not make this assumption, or improving
the git push protocol to include what the current HEAD is, the only other
approach I can think of is to identify git push's progress messages and
display those when pushing master, while filtering out error messages
about non-fast-forward etc. But git doesn't provide a way to separate out
or identify its progress messages.

Sponsored-by: Luke Shumaker on Patreon
5 years agoremove comment on now-deleted post
Joey Hess [Mon, 21 Jun 2021 16:19:00 +0000 (12:19 -0400)]
remove comment on now-deleted post

5 years agoadd news item for git-annex 8.20210621
Joey Hess [Mon, 21 Jun 2021 16:18:37 +0000 (12:18 -0400)]
add news item for git-annex 8.20210621

5 years agoreleasing package git-annex version 8.20210621
Joey Hess [Mon, 21 Jun 2021 16:17:46 +0000 (12:17 -0400)]
releasing package git-annex version 8.20210621

5 years agocomment
Joey Hess [Mon, 21 Jun 2021 16:01:55 +0000 (12:01 -0400)]
comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Jun 2021 15:32:48 +0000 (11:32 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agofix 2 build warnings
Joey Hess [Mon, 21 Jun 2021 15:27:18 +0000 (11:27 -0400)]
fix 2 build warnings

5 years agoAdded a comment
kinshukkashyap.me@35751535d5ebba69df2f2ead4f868251d1aadacf [Sun, 20 Jun 2021 07:44:35 +0000 (07:44 +0000)]
Added a comment

5 years agoAdded a comment
Lukey [Sun, 20 Jun 2021 07:15:04 +0000 (07:15 +0000)]
Added a comment

5 years agoAdded a comment
kinshukkashyap.me@35751535d5ebba69df2f2ead4f868251d1aadacf [Sun, 20 Jun 2021 06:54:37 +0000 (06:54 +0000)]
Added a comment

5 years agoAdded a comment
falsifian [Sat, 19 Jun 2021 23:48:21 +0000 (23:48 +0000)]
Added a comment

5 years agoAdded a comment
falsifian [Sat, 19 Jun 2021 23:41:25 +0000 (23:41 +0000)]
Added a comment

5 years agoAdded a comment
Ilya_Shlyakhter [Sat, 19 Jun 2021 18:31:59 +0000 (18:31 +0000)]
Added a comment

5 years agoAdded a comment
Lukey [Sat, 19 Jun 2021 12:14:33 +0000 (12:14 +0000)]
Added a comment

5 years agoAdded a comment
kinshukkashyap.me@35751535d5ebba69df2f2ead4f868251d1aadacf [Sat, 19 Jun 2021 10:22:58 +0000 (10:22 +0000)]
Added a comment

5 years agoAdded a comment: setting up sync
Ilya_Shlyakhter [Fri, 18 Jun 2021 18:55:00 +0000 (18:55 +0000)]
Added a comment: setting up sync

5 years agoAdded a comment
kinshukkashyap.me@35751535d5ebba69df2f2ead4f868251d1aadacf [Fri, 18 Jun 2021 15:11:23 +0000 (15:11 +0000)]
Added a comment

5 years agoAdded a comment
Lukey [Fri, 18 Jun 2021 14:50:45 +0000 (14:50 +0000)]
Added a comment

5 years ago(no commit message)
Kinshuk [Fri, 18 Jun 2021 14:10:42 +0000 (14:10 +0000)]

5 years ago(no commit message)
Kinshuk [Fri, 18 Jun 2021 14:07:55 +0000 (14:07 +0000)]

5 years agoAdded a comment
james@06209b7878fcf3b5c46b8028dacb3cec6609369c [Thu, 17 Jun 2021 18:14:45 +0000 (18:14 +0000)]
Added a comment

5 years agoAdded a comment
yarikoptic [Wed, 16 Jun 2021 21:32:58 +0000 (21:32 +0000)]
Added a comment

5 years agoadded suggestion to allow use of synchronous=OFF with Sqlite
Ilya_Shlyakhter [Wed, 16 Jun 2021 20:06:39 +0000 (20:06 +0000)]
added suggestion to allow use of synchronous=OFF with Sqlite

5 years agoAdded a comment: thanks
Ilya_Shlyakhter [Wed, 16 Jun 2021 19:54:02 +0000 (19:54 +0000)]
Added a comment: thanks

5 years agocomment
Joey Hess [Wed, 16 Jun 2021 16:07:08 +0000 (12:07 -0400)]
comment

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 16 Jun 2021 15:59:11 +0000 (11:59 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoAdded a comment: adding disableremote
Oumaima [Wed, 16 Jun 2021 07:37:24 +0000 (07:37 +0000)]
Added a comment: adding disableremote

5 years agoremoved
Oumaima [Wed, 16 Jun 2021 07:36:54 +0000 (07:36 +0000)]
removed

5 years agoAdded a comment: adding disableremote
Oumaima [Wed, 16 Jun 2021 07:36:16 +0000 (07:36 +0000)]
Added a comment: adding disableremote

5 years agoclear progress bar before displaying messages
Joey Hess [Wed, 16 Jun 2021 00:43:00 +0000 (20:43 -0400)]
clear progress bar before displaying messages

In particular this clears it before "transfer stalled". If an external
special remote uses showInfo while progress is displayed, it will also
improve display of that.

Generally this will avoid all such problems in the future..

Sponsored-by: Svenne Krap on Patreon
5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 15 Jun 2021 15:46:04 +0000 (11:46 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agoremoved
yarikoptic [Tue, 15 Jun 2021 15:38:47 +0000 (15:38 +0000)]
removed

5 years agodrop, move, mirror: when two files have the same content, honor the max numcopies...
Joey Hess [Tue, 15 Jun 2021 15:38:44 +0000 (11:38 -0400)]
drop, move, mirror: when two files have the same content, honor the max numcopies and requiredcopies

Eg, before with a .gitattributes like:

*.2 annex.numcopies=2
*.1 annex.numcopies=1

And foo.1 and foo.2 having the same content and key, git-annex drop foo.1 foo.2
would succeed, leaving just 1 copy, despite foo.2 needing 2 copies.
It dropped foo.1 first and then skipped foo.2 since its content was gone.

Now that the keys database includes locked files, this longstanding wart
can be fixed.

Sponsored-by: Noam Kremen on Patreon
5 years agoAdded a comment
yarikoptic [Tue, 15 Jun 2021 15:38:28 +0000 (15:38 +0000)]
Added a comment

5 years agoAdded a comment
yarikoptic [Tue, 15 Jun 2021 15:38:16 +0000 (15:38 +0000)]
Added a comment

5 years agoremove unused import
Joey Hess [Tue, 15 Jun 2021 15:31:42 +0000 (11:31 -0400)]
remove unused import

5 years agoverify associated files when checking numcopies
Joey Hess [Tue, 15 Jun 2021 15:12:27 +0000 (11:12 -0400)]
verify associated files when checking numcopies

Most of this is just refactoring. But, handleDropsFrom
did not verify that associated files from the keys db were still
accurate, and has now been fixed to.

A minor improvement to this would be to avoid calling catKeyFile
twice on the same file, when getting the numcopies and mincopies value,
in the common case where the same file has the highest value for both.
But, it avoids checking every associated file, so it will scale well to
lots of dups already.

Sponsored-by: Kevin Mueller on Patreon
5 years agofix build
Joey Hess [Tue, 15 Jun 2021 15:13:31 +0000 (11:13 -0400)]
fix build

5 years agoavoid warning
Joey Hess [Tue, 15 Jun 2021 15:11:55 +0000 (11:11 -0400)]
avoid warning

5 years agoavoid nub
Joey Hess [Tue, 15 Jun 2021 14:48:11 +0000 (10:48 -0400)]
avoid nub

It's O(N^2) which could matter when there are many dup files using the
same key.

5 years agorefactor
Joey Hess [Tue, 15 Jun 2021 14:27:33 +0000 (10:27 -0400)]
refactor

5 years agoclose
Joey Hess [Tue, 15 Jun 2021 14:11:14 +0000 (10:11 -0400)]
close

5 years agorespinse
Joey Hess [Tue, 15 Jun 2021 14:02:41 +0000 (10:02 -0400)]
respinse

5 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 15 Jun 2021 13:47:30 +0000 (09:47 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

5 years agofix exponential blowup when adding lots of identical files
Joey Hess [Tue, 15 Jun 2021 13:32:12 +0000 (09:32 -0400)]
fix exponential blowup when adding lots of identical files

This was an old problem when the files were being added unlocked,
so the changelog mentions that being fixed. However, recently it's also
affected locked files.

The fix for locked files is kind of stupidly simple. moveAnnex already
handles populating unlocked files, and only does it when the object file
was not already present. So remove the redundant populateUnlockedFiles
call. (That call was added all the way back in
cfaac52b88e157dd4e71626fe68af37015b9c9bd, and has always been
unncessary.)

Sponsored-by: Dartmouth College's Datalad project
5 years agoremove supportUnlocked check that is not worth its overhead
Joey Hess [Tue, 15 Jun 2021 13:24:59 +0000 (09:24 -0400)]
remove supportUnlocked check that is not worth its overhead

moveAnnex only gets to that check if the object file was not present
before. So in the case where dup files are being added repeatedly,
it will only run the first time, and so there's no significant speedup
from doing it; all it avoids is a single sqlite lookup. Since MVar
accesses do have overhead, it's better to optimise for the common case,
where unlocked files are supported.

removeAnnex is less clear cut, but I think mostly is skipped running on
keys when the object has already been dropped, so similar reasoning
applies.

5 years ago(no commit message)
9qf@758d7b174d81a134727acab9db0168c8f0782b3a [Tue, 15 Jun 2021 12:21:19 +0000 (12:21 +0000)]

5 years agobloom doesn't work, but this should I hope
Joey Hess [Mon, 14 Jun 2021 21:53:01 +0000 (17:53 -0400)]
bloom doesn't work, but this should I hope