git-annex.git
12 months agoMerge branch 'master' into genericp2p
Joey Hess [Fri, 1 Aug 2025 16:10:33 +0000 (12:10 -0400)]
Merge branch 'master' into genericp2p

12 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 31 Jul 2025 19:21:22 +0000 (15:21 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

12 months agoupdate design doc with changes from genericp2p branch
Joey Hess [Thu, 31 Jul 2025 19:20:28 +0000 (15:20 -0400)]
update design doc with changes from genericp2p branch

That branch is basically ready to merge, but needs more testing in a
chicken and egg situation.

12 months agoAdded a comment
yarikoptic [Thu, 31 Jul 2025 19:07:57 +0000 (19:07 +0000)]
Added a comment

12 months agoavoid broken pipe zombies
Joey Hess [Thu, 31 Jul 2025 18:57:51 +0000 (14:57 -0400)]
avoid broken pipe zombies

hClose crashes if the pipe is broken, preventing waiting for the process

12 months agoremotedaemon support for generic P2P transports
Joey Hess [Thu, 31 Jul 2025 18:37:24 +0000 (14:37 -0400)]
remotedaemon support for generic P2P transports

RemoteDaemon.Transport.Tor was refactored into this, and most of the
code is reused between them.

getSocketFile does not yet deal with repositories on crippled
filesystems that don't support sockets. Annex.Ssh detects that and
allows the user to set an environment variable, and something similar
could be done here.

And it does not deal with a situation where there is no path to the
socket file that is not too long. In that situation it would crash out
I suppose. Probably though, remotedaemon is ran from the top of the
repo, and in that case the path is just ".git/annex/p2p/<md5>" so nice
and short.

This seems to mostly work. But I don't yet have a working git-annex-p2p-
command to test it with.

And with my not quite working git-annex-p2p-foo test script, running
remotedaemon results in an ever-growing number of zombie processes
that it's not waiting on.

12 months agochanged design for p2p generic socket
Joey Hess [Thu, 31 Jul 2025 17:18:30 +0000 (13:18 -0400)]
changed design for p2p generic socket

Having the git-annex-p2p-<netname> command output the socket filename
left git-annex scrambling to listen to it in order to not miss incoming
connections. And if the command uses something like socat UNIX-CONNECT,
that expects the socket to be accepting connections and errors out when
it's not, that would be a problem.

Rather than complicating the protocol with git-annex needing to send
back a message when it's listening to the socket, simplified it by
having git-annex provide the socket path to the command.

This does mean that, if a P2P network has its own place it expects to
find a socket file, the git-annex-p2p-<netname> command would need to
somehow arrange for it to use the git-annex socket path. A symlink would
be one way to handle that situation.

12 months agoAdd yann's TdF talk about life in git annex
Yann Büchau [Thu, 31 Jul 2025 16:25:31 +0000 (18:25 +0200)]
Add yann's TdF talk about life in git annex

12 months agoadd git-remote-p2p-annex
Joey Hess [Wed, 30 Jul 2025 19:25:17 +0000 (15:25 -0400)]
add git-remote-p2p-annex

Added git-remote-p2p-annex, which allows git pull and push to P2P networks
provided by external commands.

This is a refactor of git-remote-tor-annex, and should just work. Except
possibly for quirks with the address parsing. I've checked that the address
parsing basically works.

One thing I don't understand is why git-remote-tor-annex removes "/*" from
the end of the address. The git history does not provide any hints. So I
didn't make git-remote-p2p-annex do the same. Maybe that is needed in some
situation? But, a P2P address could contain "/", so removing it would be a
problem. I can't see anything in gitremote-helpers(7) about why the url
might get such a thing added to the end of it. My guess is that is not
needed for tor either (but does no harm there since onion addresses never
contain "/").

At this point, the implementation of generic P2P transports needs only
remotedaemon support.

12 months agouse Annex.ExternalAddonProcess for P2P.Generic processes
Joey Hess [Wed, 30 Jul 2025 18:46:37 +0000 (14:46 -0400)]
use Annex.ExternalAddonProcess for P2P.Generic processes

These are another sort of external addon process, and this makes several
things work including shell scripts on windows. And it makes for nicer
error messages when the command is not in the path.

Note that the refactored startExternalAddonProcess used by this
does not use propGitEnv to set git environment variables in the
environment. Unlike startExternalAddonProcessProtocol which does.
This is because it runs in IO and does not have access to that
information. But also, I don't think that P2P.Generic processes need
that.

12 months agop2p --enable
Joey Hess [Wed, 30 Jul 2025 18:08:26 +0000 (14:08 -0400)]
p2p --enable

p2p: Added --enable option, which can be used to enable P2P networks
provided by external commands git-annex-p2p-<netname>

Made git-annex p2p --enable tor behave the same as git-annex enable-tor,
to make tor a bit less of a special case. However, it canot be run as root,
since it cannot take the user id parameter.

12 months agosupport P2PAnnex in connectPeer
Joey Hess [Wed, 30 Jul 2025 17:21:29 +0000 (13:21 -0400)]
support P2PAnnex in connectPeer

This is probably enough to support accessing remotes using p2p-annex:: urls.
Not tested yet of course since there is not yet support for serving the
other side of such a connection, or for setting up such a connection.

P2P.Generic has an implementation of the whole interface to the
git-annex-p2p-<netname> commands.

12 months agoadd connProcess to P2PConnection
Joey Hess [Wed, 30 Jul 2025 16:25:59 +0000 (12:25 -0400)]
add connProcess to P2PConnection

When using the new generic P2P transport to open an outgoing connection
to a peer, this will hold the pid of the git-annex-p2p-<netname>
command.

closeConnection simply waits for it. Rather than relying on garbage
collection of the closed handles to close it.

In Remote.Helper.Ssh, connProcess is set to Nothing, even though there
is a similar process being used there. That code stores the pid in
OpenConnection instead, and handles waiting for it itself. A bit ugly,
but not worth cleaning up at this point, maybe later.

12 months agoAdded a comment: Use an older version e.g. from archive.org
nobodyinperson [Wed, 30 Jul 2025 16:17:44 +0000 (16:17 +0000)]
Added a comment: Use an older version e.g. from archive.org

12 months agoadd P2PAnnex constructor
Joey Hess [Wed, 30 Jul 2025 16:02:33 +0000 (12:02 -0400)]
add P2PAnnex constructor

This is for p2p-annex:: urls that will use the new generic P2P
transport.

In addressCredsFile, threw in an url encoding of any non-alphanumeric
characters that are in the address. This is to avoid any possible path
traversal attacks via a p2p-annex:: url, since the address part of it
could contain any characters. And, went ahead and did the same url
encoding of tor-annex:: urls, even though tor onion addresses are all
alphanumerics, on the off chance that might avoid a similar problem.
(It does not seem likely enough to treat it as a security hole.)

12 months agoAdded a comment: Cataline build missing
h0b0 [Wed, 30 Jul 2025 15:19:06 +0000 (15:19 +0000)]
Added a comment: Cataline build missing

12 months agodocument output as a single line
Joey Hess [Tue, 29 Jul 2025 18:26:10 +0000 (14:26 -0400)]
document output as a single line

12 months agorename design page
Joey Hess [Tue, 29 Jul 2025 18:24:05 +0000 (14:24 -0400)]
rename design page

12 months agodocumentation for generic P2P transports
Joey Hess [Tue, 29 Jul 2025 18:22:25 +0000 (14:22 -0400)]
documentation for generic P2P transports

12 months agodesign for p2p socket transport
Joey Hess [Tue, 29 Jul 2025 18:00:21 +0000 (14:00 -0400)]
design for p2p socket transport

12 months agoAdded a comment: fsck can do this
apoelstra [Thu, 24 Jul 2025 14:44:52 +0000 (14:44 +0000)]
Added a comment: fsck can do this

12 months agoadd news item for git-annex 10.20250721
Joey Hess [Tue, 22 Jul 2025 18:11:53 +0000 (14:11 -0400)]
add news item for git-annex 10.20250721

12 months agoreleasing package git-annex version 10.20250721
Joey Hess [Tue, 22 Jul 2025 18:11:47 +0000 (14:11 -0400)]
releasing package git-annex version 10.20250721

12 months agoAdded a comment: Works!
mih [Tue, 22 Jul 2025 13:31:21 +0000 (13:31 +0000)]
Added a comment: Works!

12 months agoprep for release of 10.20250721
Joey Hess [Mon, 21 Jul 2025 18:24:22 +0000 (14:24 -0400)]
prep for release of 10.20250721

12 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Jul 2025 18:16:35 +0000 (14:16 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

12 months agoAdded a comment: Workaround for default wanted content?
nobodyinperson [Mon, 21 Jul 2025 18:12:59 +0000 (18:12 +0000)]
Added a comment: Workaround for default wanted content?

12 months agorun reconcileStaged even in smudge clean filter, using alternate code path
Joey Hess [Mon, 21 Jul 2025 18:10:26 +0000 (14:10 -0400)]
run reconcileStaged even in smudge clean filter, using alternate code path

Improved workaround for git 2.50 bug, avoding an occasional test suite
failure, as well as some situations where an unlocked file did not get
populated when adding another file to the repository with the same content.

This uses the alternate code path that was already using when there was
a conflict. Since that code path is not able to record its work,
it will redo the same work next time. If the only way reconcileStaged
is getting run is via the smudge clean filter, that could result in
more and more changes getting processed redundantly each time. Once
some other git-annex command runs and calls reconcileStaged, it
will stop redoing that work. I don't think the extra work will be a
problem.

12 months agomake --keep-failures show full path to test repo
Joey Hess [Mon, 21 Jul 2025 16:51:57 +0000 (12:51 -0400)]
make --keep-failures show full path to test repo

Otherwise, had to guess which of several subdirectories was the right
one.

12 months agofixed build failure
Joey Hess [Mon, 21 Jul 2025 16:27:39 +0000 (12:27 -0400)]
fixed build failure

12 months agofix build with OsPath build flag
Joey Hess [Mon, 21 Jul 2025 16:26:45 +0000 (12:26 -0400)]
fix build with OsPath build flag

12 months agofix build warning
Joey Hess [Mon, 21 Jul 2025 16:25:17 +0000 (12:25 -0400)]
fix build warning

12 months agoresponse
Joey Hess [Mon, 21 Jul 2025 16:20:48 +0000 (12:20 -0400)]
response

12 months agoAdd --url option and url= preferred content expression
Joey Hess [Mon, 21 Jul 2025 16:13:40 +0000 (12:13 -0400)]
Add --url option and url= preferred content expression

To match content that is recorded as present in an url.

Note that, this cannot ask remotes to provide an url using whereisKey, like
whereis does. Because preferred content expressions need to match the same
from multiple perspectives, and the remote would not always be available.

That's why the docs say "recorded as present", but still this may be
surprising to some who see an url in whereis output and are surprised they
cannot match on it.

The use of getDownloader is to strip the downloader prefix from urls like
"yt:". Note that, when OtherDownloader is used, this strips the ":" prefix,
and allows matching on those urls too.

12 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Jul 2025 14:53:08 +0000 (10:53 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

12 months agotodo
Joey Hess [Sat, 19 Jul 2025 20:45:51 +0000 (16:45 -0400)]
todo

12 months agoAdded a comment
jnkl [Sat, 19 Jul 2025 09:05:46 +0000 (09:05 +0000)]
Added a comment

12 months agotodo
Joey Hess [Fri, 18 Jul 2025 13:49:21 +0000 (09:49 -0400)]
todo

12 months agoAdded a comment: fs type?
jose1711 [Fri, 18 Jul 2025 09:10:50 +0000 (09:10 +0000)]
Added a comment: fs type?

12 months ago(no commit message)
jnkl [Thu, 17 Jul 2025 08:27:22 +0000 (08:27 +0000)]

12 months agoAdded a comment: Thanks!
mih [Thu, 17 Jul 2025 06:58:01 +0000 (06:58 +0000)]
Added a comment: Thanks!

12 months agofsck: Fix location of annexed files when run in linked worktrees
Joey Hess [Tue, 15 Jul 2025 17:09:45 +0000 (13:09 -0400)]
fsck: Fix location of annexed files when run in linked worktrees

This cleans up after the bug that was fixed in commit
6a9e923c74a1ae5c4c904e7a28e9339bdc241427
Object files that were stored in the wrong location are rescued,
and after that any wrong location logs will be fixed by the usual fsck.

12 months agotag INM7
Joey Hess [Mon, 14 Jul 2025 19:06:39 +0000 (15:06 -0400)]
tag INM7

Based on submitter, I assume so..

12 months agoextend gitAnnexLink special case for worktrees
Joey Hess [Mon, 14 Jul 2025 18:43:43 +0000 (14:43 -0400)]
extend gitAnnexLink special case for worktrees

Fix symlinks generated to annexed content when in adjusted unlocked branch in a
linked worktree on a filesystem not supporting symlinks.

Before this fix, the symlink generated by eg git-annex sync in an adjusted
unlocked branch contained ".git/worktrees/". There was a special case
for the similar problem with submodules, so just use it to handle this case as
well. To detect this case, rely on fixupUnusualRepos setting mainWorkTreePath.

12 months agoavoid changing gitdir
Joey Hess [Mon, 14 Jul 2025 17:52:13 +0000 (13:52 -0400)]
avoid changing gitdir

This code dates back 10 years to commit
e322826e33ede47a2d9c5f979fd629627bcd709c. But as far as I can tell,
it was never necessary. Notice that the comment added in that
commit doesn't match the code -- it says it adjusts the Repo when
the filesystem doesn't support symlinks, but it actually only adjusts
the Repo when the filesystem *does* support symlinks.

Testing in a submodule after this change, annex symlinks still point to
.git/annex/objects/.

(Note that gitAnnexLink contains a special case for submodules on filesystem
not supporting symlinks. I have verified that special case still works.
Without that special case, the annex links look like eg
"../.git/modules/foo/annex/objects", and with them, they look like
".git/annex/objects"

12 months agofixed but not ready to close yet
Joey Hess [Mon, 14 Jul 2025 17:36:17 +0000 (13:36 -0400)]
fixed but not ready to close yet

12 months agofix handling of linked worktrees on filesystems w/o symlinks
Joey Hess [Mon, 14 Jul 2025 17:20:39 +0000 (13:20 -0400)]
fix handling of linked worktrees on filesystems w/o symlinks

Fix bug in handling of linked worktrees on filesystems not supporting
symlinks, that caused annexed file content to be stored in the wrong
location inside the git directory, and also caused pointer files to not get
populated.

This parameterizes functions in Annex.Locations with a GitLocationMaker.
The uses of standardGitLocationMaker are in cases where the path returned
by a function should not change when in a linked worktree. For example,
gitAnnexLink uses standardGitLocationMaker because symlink targets should
always be to ".git/annex/objects" paths, even when in a linked worktree.
Hopefully I have gotten all uses of standardGitLocationMaker right.

This also assumes that all path construction to the annex directory
is done via the functions in Annex.Locations, and there is no other,
ad-hoc construction elsewhere. Thankfully, Annex.Locations has been around
since the beginning, and has been used consistently. I think.

---

In fixupUnusualRepos, when symlinks are supported, the .git file is replaced
with a symlink to the linked worktree git directory. And in that directory,
an "annex" symlink points to the main annex directory. In that case,
it's not necessary to set mainWorkTreePath. It would be ok to set it,
but not setting it in that case allows an optimisation of avoiding reading
the "commondir" file.

The change to make fixupUnusualRepos set mainWorkTreePath when the
repository is not initialized yet is done in case the initialization itself
writes to the annex directory. If that were the case, without setting
mainWorkTreePath, the annex symlink would not be set up yet, and so
it might have created the annex directory in the wrong place. Currently
that didn't happen, but now that mainWorkTreePath is available, using it
here avoids any such later problem.

---

This commit does not deal with the mess of a worktree that has
experienced this bug before. In particular, if `git-annex get` were
run in such a worktree, it would have stored the object files in the
linked worktree's git directory, rather than in the main git directory.
Such misplaced object files need to be dealt with; the plan is to make
git-annex fsck notice and fix them.

A worktree that has experienced this bug before will contain unpopulated
pointer files. Those may eventually get fixed up in regular usage of
git-annex, but git-annex fsck will also fix them up.

---

Finally, this has me pondering if all of git-annex's state files should
really be stored in one common place across all linked worktrees. Should
perhaps state files that are specific to the worktree be stored per-worktree?
That has not been the case when using git-annex on filesystems supporting
symlinks, but it *has* been the case on filesystems not supporting
symlinks. Perhaps this leads to some other buggy behavior in some cases.
Or perhaps to extra work being done.

For example, the keys database has an associated files table. Which depends
on the worktree. But reconcileStaged updates that table, so when git-annex
is used first in one worktree and then in another one, reconcileStaged will
update the table to reflect the current worktree. Which is extra work each
time a different worktree is used. But also, what if two git-annex
processes are running at the same time, in separate worktrees? Probably
this needs more thought and investigation.

So there is a risk that this commit exposes such buggy behavior in a
situation where it didn't happen before, due to the filesystem not
supporting symlinks. But, given how much this bug crippled using linked
worktrees in such a situation, I doubt that many people have been doing
that.

12 months agocomment typo
Joey Hess [Mon, 14 Jul 2025 13:49:51 +0000 (09:49 -0400)]
comment typo

13 months agosubtlety
Joey Hess [Fri, 11 Jul 2025 19:55:50 +0000 (15:55 -0400)]
subtlety

13 months agocomplication
Joey Hess [Fri, 11 Jul 2025 18:46:36 +0000 (14:46 -0400)]
complication

13 months agoanalysis
Joey Hess [Fri, 11 Jul 2025 18:35:47 +0000 (14:35 -0400)]
analysis

13 months agoupdate
Joey Hess [Fri, 11 Jul 2025 16:50:25 +0000 (12:50 -0400)]
update

13 months agoanother case
Joey Hess [Fri, 11 Jul 2025 16:42:22 +0000 (12:42 -0400)]
another case

13 months agoreproed
Joey Hess [Fri, 11 Jul 2025 16:16:25 +0000 (12:16 -0400)]
reproed

13 months agoAdded a comment
gioele@678b7c03f524f2669b179b603f65352fcc16774e [Wed, 9 Jul 2025 19:36:24 +0000 (19:36 +0000)]
Added a comment

13 months agoBug report with reproducer
mih [Tue, 8 Jul 2025 10:51:19 +0000 (10:51 +0000)]
Bug report with reproducer

13 months agoAdded a comment: We'll call this solved...
Spencer [Tue, 8 Jul 2025 07:01:21 +0000 (07:01 +0000)]
Added a comment: We'll call this solved...

13 months agosupport combineing --socket with HTTPs
Joey Hess [Mon, 7 Jul 2025 20:41:19 +0000 (16:41 -0400)]
support combineing --socket with HTTPs

Might be useful when proxying? Dunno.

13 months agop2phttp: Added --socket option
Joey Hess [Mon, 7 Jul 2025 20:40:02 +0000 (16:40 -0400)]
p2phttp: Added --socket option

Used protectedOutput to set up a umask that makes the socket only
accessible by the current user.

Authentication is still needed when using this option unless it is combined
with --wideopen. It was just simpler to keep authentication separate from
this.

13 months agop2phttp: Scan multilevel directories with --directory
Joey Hess [Mon, 7 Jul 2025 20:07:13 +0000 (16:07 -0400)]
p2phttp: Scan multilevel directories with --directory

This allows for eg dir/user/repo structure. But also other layouts. It
still does not look for repositories that are nested inside other
repositories.

The check for symlinks is mostly to avoid cycles that would prevent
findRepos from returning. Eg, foo/bar/baz being a symlink to foo/bar.

If the directory is writable by someone else they can still race it and
get it to follow a symlink to some other directory. I don't think p2phttp
needs to worry about that kind of situation though, and I doubt it avoids
such problems when operating on files in a git-annex repository either.

13 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 7 Jul 2025 19:23:59 +0000 (15:23 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

13 months agocomment
Joey Hess [Mon, 7 Jul 2025 19:23:53 +0000 (15:23 -0400)]
comment

13 months agonon-tor AuthTokens
Joey Hess [Mon, 7 Jul 2025 19:10:15 +0000 (15:10 -0400)]
non-tor AuthTokens

As groundwork for making git-annex p2p support other P2P networks than
tor hidden services, when an AuthToken is not a TorAnnex value, but
something else (that will be added later), store the P2PAddress that it
will be used with along with the AuthToken. And in loadP2PAuthTokens,
only return AuthTokens for the specified P2PAddress.

See commit 2de27751d6c81f1842aa762fbd7e01d84968896e for some design work
that led to this.

Also, git-annex p2p --gen-addresses is changed to generate a separate
AuthToken for every P2P address. Rather than generating a single
AuthToke and using it for every one. When we have more than just tor,
this will be important for security, to avoid a compromise of one P2P
network exposing the AuthToken used for another network.

13 months agodesign
Joey Hess [Mon, 7 Jul 2025 18:26:02 +0000 (14:26 -0400)]
design

13 months agocorrection
Joey Hess [Mon, 7 Jul 2025 17:22:08 +0000 (13:22 -0400)]
correction

13 months agoremove garbage from middle of comment
Joey Hess [Mon, 7 Jul 2025 17:21:21 +0000 (13:21 -0400)]
remove garbage from middle of comment

13 months agofix name of man page
Joey Hess [Mon, 7 Jul 2025 16:03:38 +0000 (12:03 -0400)]
fix name of man page

13 months ago(no commit message)
Basile.Pinsard [Thu, 3 Jul 2025 14:37:14 +0000 (14:37 +0000)]

13 months ago(no commit message)
Basile.Pinsard [Thu, 3 Jul 2025 14:32:10 +0000 (14:32 +0000)]

13 months agoAdded a comment
matrss [Thu, 3 Jul 2025 11:07:06 +0000 (11:07 +0000)]
Added a comment

13 months agoreenable appveyor test suite
Joey Hess [Wed, 2 Jul 2025 17:46:21 +0000 (13:46 -0400)]
reenable appveyor test suite

13 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 2 Jul 2025 17:06:13 +0000 (13:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

13 months agodeal with OSX appveyor build taking more than 1 hour and so timing out
Joey Hess [Wed, 2 Jul 2025 17:05:10 +0000 (13:05 -0400)]
deal with OSX appveyor build taking more than 1 hour and so timing out

Temporarily disable test suite, so the build will succeed.

cache /Users/appveyor/.stack so ghc and library dependencies do
not have to be installed every time

13 months ago(no commit message)
nikty@0f5aae85b4392d178220ee82e3ee708496ca7bb3 [Wed, 2 Jul 2025 07:18:57 +0000 (07:18 +0000)]

13 months agoadd news item for git-annex 10.20250630
Joey Hess [Mon, 30 Jun 2025 14:05:56 +0000 (10:05 -0400)]
add news item for git-annex 10.20250630

13 months agoreleasing package git-annex version 10.20250630
Joey Hess [Mon, 30 Jun 2025 14:05:44 +0000 (10:05 -0400)]
releasing package git-annex version 10.20250630

13 months agoclose bug that I fixed before it was filed
Joey Hess [Mon, 30 Jun 2025 14:01:43 +0000 (10:01 -0400)]
close bug that I fixed before it was filed

13 months agocomment
Joey Hess [Mon, 30 Jun 2025 13:58:04 +0000 (09:58 -0400)]
comment

13 months agoclose dup
Joey Hess [Mon, 30 Jun 2025 13:56:11 +0000 (09:56 -0400)]
close dup

13 months agoAdded a comment
matrss [Fri, 27 Jun 2025 07:11:59 +0000 (07:11 +0000)]
Added a comment

13 months ago(no commit message)
jose1711 [Thu, 26 Jun 2025 17:31:49 +0000 (17:31 +0000)]

13 months ago(no commit message)
matrss [Thu, 26 Jun 2025 15:24:32 +0000 (15:24 +0000)]

13 months ago(no commit message)
yarikoptic [Wed, 25 Jun 2025 23:59:20 +0000 (23:59 +0000)]

13 months agoAdded a comment: We don’t need a 'git annex lock' after a 'git annex add', right?
Cletip [Wed, 25 Jun 2025 22:12:57 +0000 (22:12 +0000)]
Added a comment: We don’t need a 'git annex lock' after a 'git annex add', right?

13 months agoWork around git 2.50 bug that caused it to crash when there is a merge conflict with...
Joey Hess [Wed, 25 Jun 2025 17:36:19 +0000 (13:36 -0400)]
Work around git 2.50 bug that caused it to crash when there is a merge conflict with an unlocked annexed file

This fixes several test suite failures with git 2.50.

See the bug report for the full, gory details.

13 months agobug
Joey Hess [Wed, 25 Jun 2025 15:41:56 +0000 (11:41 -0400)]
bug

13 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 25 Jun 2025 13:09:39 +0000 (09:09 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

13 months agofix windows build
Joey Hess [Wed, 25 Jun 2025 13:07:32 +0000 (09:07 -0400)]
fix windows build

13 months agoAdded a comment
xentac [Tue, 24 Jun 2025 20:54:16 +0000 (20:54 +0000)]
Added a comment

13 months ago(no commit message)
jwrauch [Tue, 24 Jun 2025 18:33:51 +0000 (18:33 +0000)]

13 months agowebapp: Rename "Upgrade Repository" to "Convert Repository"
Joey Hess [Tue, 24 Jun 2025 16:33:48 +0000 (12:33 -0400)]
webapp: Rename "Upgrade Repository" to "Convert Repository"

To avoid confusion with git-annex upgrade.

Sponsored-by: Graham Spencer on Patreon
13 months agocomment
Joey Hess [Tue, 24 Jun 2025 16:24:45 +0000 (12:24 -0400)]
comment

13 months agocomment
Joey Hess [Tue, 24 Jun 2025 15:13:02 +0000 (11:13 -0400)]
comment

13 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 24 Jun 2025 15:12:18 +0000 (11:12 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

13 months agoresponse
Joey Hess [Tue, 24 Jun 2025 15:11:16 +0000 (11:11 -0400)]
response

13 months agoAdded a comment
xentac [Mon, 23 Jun 2025 18:24:47 +0000 (18:24 +0000)]
Added a comment

13 months agocomment
Joey Hess [Mon, 23 Jun 2025 17:34:00 +0000 (13:34 -0400)]
comment

13 months agocomment
Joey Hess [Mon, 23 Jun 2025 17:31:41 +0000 (13:31 -0400)]
comment

13 months agoprevent relatedTemplate from truncating a filename to end in whitespace
Joey Hess [Mon, 23 Jun 2025 17:31:15 +0000 (13:31 -0400)]
prevent relatedTemplate from truncating a filename to end in whitespace

Avoid a problem with temp file names ending in whitespace on filesystems
like VFAT that don't support such filenames.

See a6eb7d73398fc1729faec663c1822023e540643b previously for the same but
with "."

At some point relatedTemplate is more bother than it's worth and it would
be simpler to just use "temp" as the basename of all temp files. We seem to
be approaching that point, since my interest in absurd ancient filesystem
limitations is limited.

Sponsored-by: unqueued on Patreon
13 months agoSkip and warn when a tree import includes empty filenames
Joey Hess [Mon, 23 Jun 2025 15:12:44 +0000 (11:12 -0400)]
Skip and warn when a tree import includes empty filenames

Which can happen with eg a S3 bucket.

Sponsored-by: Dartmouth College's DANDI project