git-annex.git
4 years agoadd rent optimisation inhibitor
Joey Hess [Thu, 23 Jun 2022 16:51:50 +0000 (12:51 -0400)]
add rent optimisation inhibitor

As outlined in my blog post, I object to Microsoft training their Copilot
model on my code, and believe it likely violates my copyright.
https://joeyh.name/blog/entry/a_bitter_pill_for_Microsoft_Copilot/

While I never push git-annex to Github, other users choose to. And since
Microsoft is now selling access to Copilot to anyone, this situation is
escalating.

4 years agoremove vendored library no longer used
Joey Hess [Thu, 23 Jun 2022 16:35:26 +0000 (12:35 -0400)]
remove vendored library no longer used

http-manager-restricted is used for a while, but I forgot to delete this
file when making that change.

4 years agouse RawFilePath version of rename
Joey Hess [Wed, 22 Jun 2022 20:47:34 +0000 (16:47 -0400)]
use RawFilePath version of rename

Some small wins, almost certianly swamped by the system calls, but still
worthwhile progress on the RawFilePath conversion.

Sponsored-by: Erik Bjäreholt on Patreon
4 years agoRawFilePath optimisations
Joey Hess [Wed, 22 Jun 2022 20:20:08 +0000 (16:20 -0400)]
RawFilePath optimisations

4 years agoRawFilePath optimisation
Joey Hess [Wed, 22 Jun 2022 20:11:03 +0000 (16:11 -0400)]
RawFilePath optimisation

4 years agoremove objectDir'
Joey Hess [Wed, 22 Jun 2022 20:08:49 +0000 (16:08 -0400)]
remove objectDir'

4 years agoRawFilePath optimisation
Joey Hess [Wed, 22 Jun 2022 20:08:26 +0000 (16:08 -0400)]
RawFilePath optimisation

4 years agoconvert bug to todo
Joey Hess [Wed, 22 Jun 2022 18:23:46 +0000 (14:23 -0400)]
convert bug to todo

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 22 Jun 2022 17:54:57 +0000 (13:54 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agouse replaceWorkTreeFile when fixing an annex symlink
Joey Hess [Wed, 22 Jun 2022 17:40:14 +0000 (13:40 -0400)]
use replaceWorkTreeFile when fixing an annex symlink

This does not change any behavior, but it's useful for all worktree
changes to be made using this.

Sponsored-by: Graham Spencer on Patreon
4 years agofollowup
Joey Hess [Wed, 22 Jun 2022 17:19:35 +0000 (13:19 -0400)]
followup

4 years agoAdded a comment
Atemu [Wed, 22 Jun 2022 12:34:45 +0000 (12:34 +0000)]
Added a comment

4 years agoAdded a comment
Atemu [Wed, 22 Jun 2022 12:24:22 +0000 (12:24 +0000)]
Added a comment

4 years ago(no commit message)
Ryan [Tue, 21 Jun 2022 18:28:09 +0000 (18:28 +0000)]

4 years agoremoved
arshitha [Fri, 17 Jun 2022 11:13:27 +0000 (11:13 +0000)]
removed

4 years agoAdded a comment
arshitha [Fri, 17 Jun 2022 09:44:28 +0000 (09:44 +0000)]
Added a comment

4 years agodecided this is not a problem
Joey Hess [Wed, 15 Jun 2022 18:00:56 +0000 (14:00 -0400)]
decided this is not a problem

4 years agofix overwrite race with small file that got large
Joey Hess [Tue, 14 Jun 2022 20:38:34 +0000 (16:38 -0400)]
fix overwrite race with small file that got large

When adding a small file, it does not get locked down, so can be modified
after git-annex checks that it's small. The use of queued git add made the
race window nice and wide too.

Fixed by checking if the file has changed, and by not using git add.
Instead, have to recapitulate git add's handling of things like symlinks
and executable files.

Sponsored-by: Jochen Bartl on Patreon
4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 14 Jun 2022 18:56:16 +0000 (14:56 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoAdded a comment: hold it... ;)
yarikoptic [Tue, 14 Jun 2022 18:47:25 +0000 (18:47 +0000)]
Added a comment: hold it... ;)

4 years agoget rid of racy addLink
Joey Hess [Tue, 14 Jun 2022 18:40:55 +0000 (14:40 -0400)]
get rid of racy addLink

The remaining callers all did not rely on it checking gitignore, so were
easy to convert.

They were susceptable to the same overwrite race as add and fix,
although less likely to have it and a narrower window than add's race.

Command.Rekey in passing got an unncessary call to removeFile deleted.
addSymlink handles deleting any existing worktree file.

4 years agoavoid writing same symlink twice in a row
Joey Hess [Tue, 14 Jun 2022 18:30:12 +0000 (14:30 -0400)]
avoid writing same symlink twice in a row

Oddly, the second write did not cause it to lose the mtime inherited
from the file being added, although the mtime was not provided to that
write but only to the first. I don't quite know why that worked before!

4 years agofixed overwrite race with git-annex fix
Joey Hess [Tue, 14 Jun 2022 18:19:58 +0000 (14:19 -0400)]
fixed overwrite race with git-annex fix

Similar to git-annex add, git-annex fix queued git add, so if a file
got modified before git add ran, the wrong content would be staged,
perhaps a large file content.

Sponsored-by: Brock Spratlen on Patreon
4 years agobug report
Joey Hess [Tue, 14 Jun 2022 18:13:48 +0000 (14:13 -0400)]
bug report

4 years agofix overwrite race with git-annex add of annex symlink
Joey Hess [Tue, 14 Jun 2022 17:56:17 +0000 (13:56 -0400)]
fix overwrite race with git-annex add of annex symlink

In the unlikely case where git-annex add is run on an annex symlink that
is not already added, and while it's processing it, the annex symlink is
overwritten with something else, avoid git-annex overwriting that with
the symlink again.

Sponsored-by: Jack Hill on Patreon
4 years agofix add overwrite race with git-annex add to annex
Joey Hess [Tue, 14 Jun 2022 17:20:42 +0000 (13:20 -0400)]
fix add overwrite race with git-annex add to annex

This is not a complete fix for all such races, only the one where a
large file gets changed while adding and gets added to git rather than
to the annex.

addLink needs to go away, any caller of it is probably subject to the
same kind of race. (Also, addLink itself fails to check gitignore when
symlinks are not supported.)

ingestAdd no longer checks gitignore. (It didn't check it consistently
before either, since there were cases where it did not run git add!)
When git-annex import calls it, it's already checked gitignore itself
earlier. When git-annex add calls it, it's usually on files found
by withFilesNotInGit, which handles checking ignores.

There was one other case, when git-annex add --batch calls it. In that
case, old git-annex behaved rather badly, it would seem to add the file,
but git add would later fail, leaving the file as an unstaged annex symlink.
That behavior has also been fixed.

Sponsored-by: Brett Eisenberg on Patreon
4 years agobug report
Joey Hess [Tue, 14 Jun 2022 16:51:04 +0000 (12:51 -0400)]
bug report

Sponsored-by: Luke Shumaker on Patreon
4 years agocomment
Joey Hess [Tue, 14 Jun 2022 16:23:33 +0000 (12:23 -0400)]
comment

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

4 years agoAdded a comment
KachoOji [Tue, 14 Jun 2022 15:32:48 +0000 (15:32 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Mon, 13 Jun 2022 23:52:48 +0000 (23:52 +0000)]
Added a comment

4 years agoinitial whining about type=git initremote stopped
yarikoptic [Mon, 13 Jun 2022 23:40:30 +0000 (23:40 +0000)]
initial whining about type=git initremote stopped

4 years agoadd rf
Joey Hess [Mon, 13 Jun 2022 20:04:12 +0000 (16:04 -0400)]
add rf

4 years agocomment
Joey Hess [Mon, 13 Jun 2022 18:20:54 +0000 (14:20 -0400)]
comment

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

4 years agoadd todo based on forum post
Joey Hess [Mon, 13 Jun 2022 17:12:18 +0000 (13:12 -0400)]
add todo based on forum post

4 years ago(no commit message)
Atemu [Sat, 11 Jun 2022 14:58:11 +0000 (14:58 +0000)]

4 years ago(no commit message)
KachoOji [Fri, 10 Jun 2022 23:04:09 +0000 (23:04 +0000)]

4 years agoAdded a comment
yarikoptic [Thu, 9 Jun 2022 21:53:05 +0000 (21:53 +0000)]
Added a comment

4 years agoavoid cleaning up move log when drop from remote fails
Joey Hess [Thu, 9 Jun 2022 19:26:25 +0000 (15:26 -0400)]
avoid cleaning up move log when drop from remote fails

move: Improve resuming a move that succeeded in transferring the content,
but where dropping failed due to eg a network problem, in cases where
numcopies checks prevented the resumed move from dropping the object from
the source repository.

This was earlier done for moves that got interrupted during the drop stage.

Sponsored-by: Svenne Krap on Patreon
4 years agofix to use 1 chunk for empty file
Joey Hess [Thu, 9 Jun 2022 18:24:56 +0000 (14:24 -0400)]
fix to use 1 chunk for empty file

Fix retrival of an empty file that is stored in a special remote with
chunking enabled.

The speculative chunk stuff caused a reversion by adding an empty list for
the empty file. Which is just wrong; the empty file is still stored on the
remote, and should be retrieved like any other file. It uses 1 chunk, so
`max 1` is the simple fix.

Sponsored-by: Noam Kremen on Patreon
4 years agofix typo
Joey Hess [Thu, 9 Jun 2022 17:40:05 +0000 (13:40 -0400)]
fix typo

4 years agocomment
Joey Hess [Thu, 9 Jun 2022 17:38:37 +0000 (13:38 -0400)]
comment

4 years agocomment
Joey Hess [Thu, 9 Jun 2022 17:32:07 +0000 (13:32 -0400)]
comment

4 years agoclose as not a bug
Joey Hess [Thu, 9 Jun 2022 17:23:33 +0000 (13:23 -0400)]
close as not a bug

4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 9 Jun 2022 17:18:10 +0000 (13:18 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoinitial report on difficulty with 0 length file
yarikoptic [Thu, 9 Jun 2022 17:17:56 +0000 (17:17 +0000)]
initial report on difficulty with 0 length file

4 years agoinitremote type=git probe uuid
Joey Hess [Thu, 9 Jun 2022 17:16:50 +0000 (13:16 -0400)]
initremote type=git probe uuid

rather than matching path of an existing remote to find the uuid.

The main benefit of this is that locations not using ssh:// will work
now, including both paths and host:/path

The other benefit is that it's a simpler interface, no need to have an
existing remote with the same url and some other name. Although that
will still work of course.

This does rely on tryGitConfigRead working when given a Git.Repo that is
not a remote. Luckily, it works fine that way.

Also, tryGitConfigRead will auto-init a local repo that has a git-annex
branch. I did not enable auto-init of ssh repos though.

The uuid discovery actually happens twice; initremote discovers it,
and uses it to store the special remote config, but does not set it in the
git remote it creates. So the next run of git-annex does uuid discovery
again, and caches it that time. This could be improved for a tiny
speedup, but I didn't want to complicate things for that in this
commit.

Sponsored-by: Dartmouth College's DANDI project
4 years agobug report
Joey Hess [Thu, 9 Jun 2022 17:16:39 +0000 (13:16 -0400)]
bug report

4 years ago(no commit message)
mih [Thu, 9 Jun 2022 11:43:47 +0000 (11:43 +0000)]

4 years agoAdded a comment
jkniiv [Thu, 9 Jun 2022 02:32:19 +0000 (02:32 +0000)]
Added a comment

4 years agoanalysis
Joey Hess [Wed, 8 Jun 2022 19:44:28 +0000 (15:44 -0400)]
analysis

4 years agocomment
Joey Hess [Wed, 8 Jun 2022 16:54:28 +0000 (12:54 -0400)]
comment

4 years agoinitial whining about type=git initremote
yarikoptic [Wed, 8 Jun 2022 15:42:58 +0000 (15:42 +0000)]
initial whining about type=git initremote

4 years agoinitial report on addurls issue
yarikoptic [Wed, 8 Jun 2022 14:05:56 +0000 (14:05 +0000)]
initial report on addurls issue

4 years agoAdded a comment
Atemu [Tue, 7 Jun 2022 12:07:30 +0000 (12:07 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Mon, 6 Jun 2022 17:22:41 +0000 (17:22 +0000)]
Added a comment

4 years agocomment
Joey Hess [Mon, 6 Jun 2022 16:37:40 +0000 (12:37 -0400)]
comment

4 years agoadd debugging around commits to sqlite dbs
Joey Hess [Mon, 6 Jun 2022 16:36:55 +0000 (12:36 -0400)]
add debugging around commits to sqlite dbs

4 years agocomment
Joey Hess [Mon, 6 Jun 2022 16:19:28 +0000 (12:19 -0400)]
comment

4 years agofix MVar deadlock when sqlite commit fails
Joey Hess [Mon, 6 Jun 2022 16:16:55 +0000 (12:16 -0400)]
fix MVar deadlock when sqlite commit fails

The database queue was left empty, which caused subsequent calls to
flushDbQueue to deadlock.

Sponsored-by: Dartmouth College's Datalad project
4 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 6 Jun 2022 15:55:02 +0000 (11:55 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

4 years agoAdded a comment
yarikoptic [Mon, 6 Jun 2022 14:50:16 +0000 (14:50 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Mon, 6 Jun 2022 14:00:05 +0000 (14:00 +0000)]
Added a comment

4 years agoAdded a comment
aurelia@b44312a63326710de6cea9c43290e5debbd55607 [Mon, 6 Jun 2022 12:38:26 +0000 (12:38 +0000)]
Added a comment

4 years agoupdate
Joey Hess [Sun, 5 Jun 2022 14:37:32 +0000 (10:37 -0400)]
update

4 years agoAdded a comment
Atemu [Sun, 5 Jun 2022 12:55:04 +0000 (12:55 +0000)]
Added a comment

4 years agoadd debugLocks around database operations
Joey Hess [Fri, 3 Jun 2022 18:10:24 +0000 (14:10 -0400)]
add debugLocks around database operations

to track down a blocked indefinitely on MVar that seems to occur after
sqlite throws ErrorBusy but that I have not been able to reproduce when
I made commits synthetically throw ErrorBusy.

Sponsored-by: Dartmouth College's Datalad project
4 years agocomment
Joey Hess [Fri, 3 Jun 2022 18:02:32 +0000 (14:02 -0400)]
comment

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

4 years agoclose
Joey Hess [Fri, 3 Jun 2022 18:00:48 +0000 (14:00 -0400)]
close

4 years agoAdded a comment
yarikoptic [Fri, 3 Jun 2022 16:42:39 +0000 (16:42 +0000)]
Added a comment

4 years ago(no commit message)
war1025@f884a3422ae0f27c6a2eb2335b383c5098f01c92 [Fri, 3 Jun 2022 14:20:09 +0000 (14:20 +0000)]

4 years agoAdded a comment
yarikoptic [Fri, 3 Jun 2022 01:40:17 +0000 (01:40 +0000)]
Added a comment

4 years agoAdded a comment: still reports about invalid option but doesn't fail
yarikoptic [Fri, 3 Jun 2022 01:36:39 +0000 (01:36 +0000)]
Added a comment: still reports about invalid option but doesn't fail

4 years agoAdded a comment: defending BTRFS
yarikoptic [Thu, 2 Jun 2022 18:43:02 +0000 (18:43 +0000)]
Added a comment: defending BTRFS

4 years agoping
Joey Hess [Thu, 2 Jun 2022 16:24:03 +0000 (12:24 -0400)]
ping

4 years agocomment
Joey Hess [Thu, 2 Jun 2022 16:22:07 +0000 (12:22 -0400)]
comment

4 years agoclose as hopefully fixed
Joey Hess [Thu, 2 Jun 2022 16:07:01 +0000 (12:07 -0400)]
close as hopefully fixed

did not have a good way to reproduce this, but I had a good theory about
a cause and fix..

4 years agoclose as already fixed
Joey Hess [Thu, 2 Jun 2022 15:59:26 +0000 (11:59 -0400)]
close as already fixed

4 years agocomment
Joey Hess [Thu, 2 Jun 2022 15:57:24 +0000 (11:57 -0400)]
comment

4 years agoupdate content of .git/info/attributes
Joey Hess [Thu, 2 Jun 2022 15:45:49 +0000 (11:45 -0400)]
update content of .git/info/attributes

This got changed but forgot to update it here.

4 years agoinfo: Added --autoenable option
Joey Hess [Wed, 1 Jun 2022 18:20:38 +0000 (14:20 -0400)]
info: Added --autoenable option

Use cases include using git-annex init --no-autoenable and then going back
and enabling the special remotes that have autoenable configured. As well
as just querying to remember which ones have it enabled.

It lists all special remotes that have autoenable=yes whether currently
enabled or not. And it can be used with --json.

I pondered making this "git-annex info autoenable", but that seemed wrong
because then if the use has a directory named "autoenable", it's unclear
what they are asking for. (Although "git-annex info remote" may be
similarly unclear.) Making it an option does mean that it can't be provided
via --batch though.

Sponsored-by: Dartmouth College's Datalad project
4 years agoinit: Added --no-autoenable option
Joey Hess [Wed, 1 Jun 2022 17:27:49 +0000 (13:27 -0400)]
init: Added --no-autoenable option

Someone may disagree with what repositories are set to autoenable and
it's good to have local overrides.

See https://github.com/datalad/datalad/issues/6634

Sponsored-by: Dartmouth College's Datalad project
4 years agocomment
Joey Hess [Wed, 1 Jun 2022 17:16:56 +0000 (13:16 -0400)]
comment

4 years agoAdded a comment
yarikoptic [Wed, 1 Jun 2022 13:49:05 +0000 (13:49 +0000)]
Added a comment

4 years agoAdded a comment
oliv5 [Wed, 1 Jun 2022 11:16:35 +0000 (11:16 +0000)]
Added a comment

4 years agoremoved
oliv5 [Wed, 1 Jun 2022 11:13:43 +0000 (11:13 +0000)]
removed

4 years agoAdded a comment
oliv5 [Wed, 1 Jun 2022 10:53:22 +0000 (10:53 +0000)]
Added a comment

4 years agoAdded a comment
Lukey [Wed, 1 Jun 2022 05:27:22 +0000 (05:27 +0000)]
Added a comment

4 years ago(no commit message)
web+git-annex@349c5d90cbeb85be6151d508cf84e7b83aa2280e [Wed, 1 Jun 2022 04:34:53 +0000 (04:34 +0000)]

4 years ago(no commit message)
web+git-annex@349c5d90cbeb85be6151d508cf84e7b83aa2280e [Wed, 1 Jun 2022 00:46:53 +0000 (00:46 +0000)]

4 years agoAdded a comment
yarikoptic [Tue, 31 May 2022 19:17:05 +0000 (19:17 +0000)]
Added a comment

4 years agoAdded a comment
yarikoptic [Tue, 31 May 2022 19:07:59 +0000 (19:07 +0000)]
Added a comment

4 years agocomment
Joey Hess [Tue, 31 May 2022 17:32:27 +0000 (13:32 -0400)]
comment

4 years agomoreinfo
Joey Hess [Tue, 31 May 2022 17:12:08 +0000 (13:12 -0400)]
moreinfo

4 years agocomment
Joey Hess [Tue, 31 May 2022 17:11:52 +0000 (13:11 -0400)]
comment

4 years agoenable --as-needed on freebsd
Joey Hess [Tue, 31 May 2022 17:03:39 +0000 (13:03 -0400)]
enable --as-needed on freebsd

based on doc/bugs/FreeBSD_patches.mdwn which indicates it works, though
sadly without anything more than a patch.

If this breaks anything it will be reverted.

4 years agocomment
Joey Hess [Tue, 31 May 2022 16:58:44 +0000 (12:58 -0400)]
comment

4 years agoresponse
Joey Hess [Tue, 31 May 2022 16:55:29 +0000 (12:55 -0400)]
response