Joey Hess [Wed, 30 Jun 2021 15:48:33 +0000 (11:48 -0400)]
releasing package git-annex version 8.
20210630
Joey Hess [Wed, 30 Jun 2021 15:43:39 +0000 (11:43 -0400)]
closing
yarikoptic [Wed, 30 Jun 2021 14:26:34 +0000 (14:26 +0000)]
Added a comment
jwodder [Wed, 30 Jun 2021 13:16:19 +0000 (13:16 +0000)]
falsifian [Wed, 30 Jun 2021 00:09:23 +0000 (00:09 +0000)]
Added a comment
Atemu [Tue, 29 Jun 2021 22:57:39 +0000 (22:57 +0000)]
Added a comment
Joey Hess [Tue, 29 Jun 2021 17:30:58 +0000 (13:30 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
yarikoptic [Tue, 29 Jun 2021 17:27:35 +0000 (17:27 +0000)]
Added a comment
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.
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
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
Joey Hess [Mon, 28 Jun 2021 19:00:21 +0000 (15:00 -0400)]
some analysis
Joey Hess [Mon, 28 Jun 2021 17:14:19 +0000 (13:14 -0400)]
close
Joey Hess [Mon, 28 Jun 2021 17:11:13 +0000 (13:11 -0400)]
close
Joey Hess [Mon, 28 Jun 2021 17:08:57 +0000 (13:08 -0400)]
close
Joey Hess [Mon, 28 Jun 2021 17:05:26 +0000 (13:05 -0400)]
close
Joey Hess [Mon, 28 Jun 2021 16:54:41 +0000 (12:54 -0400)]
comment
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
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
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
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.
Joey Hess [Fri, 25 Jun 2021 18:15:14 +0000 (14:15 -0400)]
comment
Joey Hess [Fri, 25 Jun 2021 17:52:59 +0000 (13:52 -0400)]
comment
Joey Hess [Fri, 25 Jun 2021 17:33:27 +0000 (13:33 -0400)]
comment
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
Joey Hess [Fri, 25 Jun 2021 16:13:25 +0000 (12:13 -0400)]
comment
Joey Hess [Fri, 25 Jun 2021 16:11:05 +0000 (12:11 -0400)]
comment
Joey Hess [Fri, 25 Jun 2021 16:06:49 +0000 (12:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
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
strmd [Fri, 25 Jun 2021 15:07:55 +0000 (15:07 +0000)]
Added a comment
Ilya_Shlyakhter [Thu, 24 Jun 2021 18:16:43 +0000 (18:16 +0000)]
added suggestion re: hardening git-annex against interruptions
Ilya_Shlyakhter [Thu, 24 Jun 2021 18:03:40 +0000 (18:03 +0000)]
Added a comment: resolving merge conflicts
Lukey [Thu, 24 Jun 2021 17:43:36 +0000 (17:43 +0000)]
Added a comment
Ilya_Shlyakhter [Thu, 24 Jun 2021 16:40:48 +0000 (16:40 +0000)]
Added a comment: thanks
Joey Hess [Wed, 23 Jun 2021 21:31:09 +0000 (17:31 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 23 Jun 2021 21:30:50 +0000 (17:30 -0400)]
comment
Ilya_Shlyakhter [Wed, 23 Jun 2021 18:45:47 +0000 (18:45 +0000)]
Added a comment: recovering from sqlite db corruption
Joey Hess [Wed, 23 Jun 2021 17:19:34 +0000 (13:19 -0400)]
comment
Joey Hess [Wed, 23 Jun 2021 16:59:00 +0000 (12:59 -0400)]
close
Joey Hess [Wed, 23 Jun 2021 16:54:48 +0000 (12:54 -0400)]
comment
Joey Hess [Wed, 23 Jun 2021 16:53:18 +0000 (12:53 -0400)]
comment and close
datamanager [Wed, 23 Jun 2021 01:29:23 +0000 (01:29 +0000)]
Added a comment: an alternative
Lukey [Tue, 22 Jun 2021 18:40:56 +0000 (18:40 +0000)]
Ilya_Shlyakhter [Tue, 22 Jun 2021 14:03:24 +0000 (14:03 +0000)]
Added a comment: old comments
Joey Hess [Tue, 22 Jun 2021 13:46:06 +0000 (09:46 -0400)]
fix windows build
jwodder [Tue, 22 Jun 2021 13:21:17 +0000 (13:21 +0000)]
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
Joey Hess [Mon, 21 Jun 2021 17:54:12 +0000 (13:54 -0400)]
remove dead code
Joey Hess [Mon, 21 Jun 2021 17:52:50 +0000 (13:52 -0400)]
comment
Joey Hess [Mon, 21 Jun 2021 17:23:51 +0000 (13:23 -0400)]
tag datalad
at yoh's request
Joey Hess [Mon, 21 Jun 2021 17:21:43 +0000 (13:21 -0400)]
comment
Joey Hess [Mon, 21 Jun 2021 17:21:27 +0000 (13:21 -0400)]
remove old android comments/bug reports
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
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
Joey Hess [Mon, 21 Jun 2021 16:32:36 +0000 (12:32 -0400)]
remove unused import
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
Joey Hess [Mon, 21 Jun 2021 16:19:00 +0000 (12:19 -0400)]
remove comment on now-deleted post
Joey Hess [Mon, 21 Jun 2021 16:18:37 +0000 (12:18 -0400)]
add news item for git-annex 8.
20210621
Joey Hess [Mon, 21 Jun 2021 16:17:46 +0000 (12:17 -0400)]
releasing package git-annex version 8.
20210621
Joey Hess [Mon, 21 Jun 2021 16:01:55 +0000 (12:01 -0400)]
comment
Joey Hess [Mon, 21 Jun 2021 15:32:48 +0000 (11:32 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Jun 2021 15:27:18 +0000 (11:27 -0400)]
fix 2 build warnings
Added a comment
Lukey [Sun, 20 Jun 2021 07:15:04 +0000 (07:15 +0000)]
Added a comment
Added a comment
falsifian [Sat, 19 Jun 2021 23:48:21 +0000 (23:48 +0000)]
Added a comment
falsifian [Sat, 19 Jun 2021 23:41:25 +0000 (23:41 +0000)]
Added a comment
Ilya_Shlyakhter [Sat, 19 Jun 2021 18:31:59 +0000 (18:31 +0000)]
Added a comment
Lukey [Sat, 19 Jun 2021 12:14:33 +0000 (12:14 +0000)]
Added a comment
Added a comment
Ilya_Shlyakhter [Fri, 18 Jun 2021 18:55:00 +0000 (18:55 +0000)]
Added a comment: setting up sync
Added a comment
Lukey [Fri, 18 Jun 2021 14:50:45 +0000 (14:50 +0000)]
Added a comment
Kinshuk [Fri, 18 Jun 2021 14:10:42 +0000 (14:10 +0000)]
Kinshuk [Fri, 18 Jun 2021 14:07:55 +0000 (14:07 +0000)]
james@06209b7878fcf3b5c46b8028dacb3cec6609369c [Thu, 17 Jun 2021 18:14:45 +0000 (18:14 +0000)]
Added a comment
yarikoptic [Wed, 16 Jun 2021 21:32:58 +0000 (21:32 +0000)]
Added a comment
Ilya_Shlyakhter [Wed, 16 Jun 2021 20:06:39 +0000 (20:06 +0000)]
added suggestion to allow use of synchronous=OFF with Sqlite
Ilya_Shlyakhter [Wed, 16 Jun 2021 19:54:02 +0000 (19:54 +0000)]
Added a comment: thanks
Joey Hess [Wed, 16 Jun 2021 16:07:08 +0000 (12:07 -0400)]
comment
Joey Hess [Wed, 16 Jun 2021 15:59:11 +0000 (11:59 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Oumaima [Wed, 16 Jun 2021 07:37:24 +0000 (07:37 +0000)]
Added a comment: adding disableremote
Oumaima [Wed, 16 Jun 2021 07:36:54 +0000 (07:36 +0000)]
removed
Oumaima [Wed, 16 Jun 2021 07:36:16 +0000 (07:36 +0000)]
Added a comment: adding disableremote
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
Joey Hess [Tue, 15 Jun 2021 15:46:04 +0000 (11:46 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
yarikoptic [Tue, 15 Jun 2021 15:38:47 +0000 (15:38 +0000)]
removed
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
yarikoptic [Tue, 15 Jun 2021 15:38:28 +0000 (15:38 +0000)]
Added a comment
yarikoptic [Tue, 15 Jun 2021 15:38:16 +0000 (15:38 +0000)]
Added a comment
Joey Hess [Tue, 15 Jun 2021 15:31:42 +0000 (11:31 -0400)]
remove unused import
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
Joey Hess [Tue, 15 Jun 2021 15:13:31 +0000 (11:13 -0400)]
fix build
Joey Hess [Tue, 15 Jun 2021 15:11:55 +0000 (11:11 -0400)]
avoid warning
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.
Joey Hess [Tue, 15 Jun 2021 14:27:33 +0000 (10:27 -0400)]
refactor
Joey Hess [Tue, 15 Jun 2021 14:11:14 +0000 (10:11 -0400)]
close
Joey Hess [Tue, 15 Jun 2021 14:02:41 +0000 (10:02 -0400)]
respinse
Joey Hess [Tue, 15 Jun 2021 13:47:30 +0000 (09:47 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
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