git-annex.git
2 years agoconvert StorableCipher to ByteString
Joey Hess [Wed, 1 Nov 2023 18:27:22 +0000 (14:27 -0400)]
convert StorableCipher to ByteString

This allows getting rid of the ugly and error prone handling of
"bag of bytes" String in Remote.Helper.Encryptable.
Avoiding breakage like that dealt with by commit
9862d64bf90de645ef1acfbf862c5b340475aacf

And allows converting Utility.Gpg to use ByteString for IO, which is
a welcome change.

Tested the new git-annex interoperability with old, using all 3
encryption= types.

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2 years agoremove unused import
Joey Hess [Wed, 1 Nov 2023 17:14:39 +0000 (13:14 -0400)]
remove unused import

2 years agobring back "bag of bytes" handling for ciphers
Joey Hess [Wed, 1 Nov 2023 17:09:42 +0000 (13:09 -0400)]
bring back "bag of bytes" handling for ciphers

Fixes test suite failure with LANG=C caused by commit
3742263c99180d1391e4fd51724aae52d6d02137

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2 years agoreproduced
Joey Hess [Wed, 1 Nov 2023 16:19:50 +0000 (12:19 -0400)]
reproduced

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 1 Nov 2023 16:03:55 +0000 (12:03 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoupdate
Joey Hess [Wed, 1 Nov 2023 12:43:32 +0000 (08:43 -0400)]
update

2 years agoupdate
Joey Hess [Wed, 1 Nov 2023 12:42:15 +0000 (08:42 -0400)]
update

2 years agoupdate
Joey Hess [Tue, 31 Oct 2023 18:06:46 +0000 (14:06 -0400)]
update

2 years agoinitial bug report
yarikoptic [Mon, 30 Oct 2023 22:03:20 +0000 (22:03 +0000)]
initial bug report

2 years agoAdded a comment
jkniiv [Mon, 30 Oct 2023 21:32:07 +0000 (21:32 +0000)]
Added a comment

2 years agolookupkey: Sped up --batch
Joey Hess [Mon, 30 Oct 2023 18:59:09 +0000 (14:59 -0400)]
lookupkey: Sped up --batch

When the file is relative, it does not need to be passed
through git lsfiles to normalize it.

Sponsored-by: Kevin Mueller on Patreon
2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 30 Oct 2023 18:45:58 +0000 (14:45 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agocomment
Joey Hess [Mon, 30 Oct 2023 18:45:52 +0000 (14:45 -0400)]
comment

2 years agoWindows: Consistently avoid ending output lines with CR
Joey Hess [Mon, 30 Oct 2023 18:43:43 +0000 (14:43 -0400)]
Windows: Consistently avoid ending output lines with CR

This matches the behavior of git on Windows, which does not end lines with
CR either.

Previously, git-annex used to always write lines with putStrLn, so would
output CR on Windows. Then parts of it changed to use ByteString.putStrLn,
which does not output CR. That left its output inconsistent, sometimes
within the same command.

The point of this commit is to get back to consistency. Having the same
behavior as git is a nice bonus. It would be much harder to make it
consistently output CR, because every place it uses ByteString.putStrLn or
similar would need to be changed.

Sponsored-by: Nicholas Golder-Manning on Patreon
2 years agoWindows: Fix CRLF handling in some log files
Joey Hess [Mon, 30 Oct 2023 18:23:23 +0000 (14:23 -0400)]
Windows: Fix CRLF handling in some log files

In particular, the mergedrefs file was written with CR added to each line,
but read without CRLF handling. This resulted in each update of the file
adding CR to each line in it, growing the number of lines, while also
preventing the optimisation from working, so it remerged unncessarily.

writeFile and readFile do NewlineMode translation on Windows. But the
ByteString conversion prevented that from happening any longer.

I've audited for other cases of this, and found three more
(.git/annex/index.lck, .git/annex/ignoredrefs, and .git/annex/import/). All
of those also only prevent optimisations from working. Some other files are
currently both read and written with ByteString, but old git-annex may have
written them with NewlineMode translation. Other files are at risk for
breakage later if the reader gets converted to ByteString.

This is a minimal fix, but should be enough, as long as I remember to use
fileLines when splitting a ByteString into lines. This leaves files written
using ByteString without CR added, but that's ok because old git-annex has
no difficulty reading such files.

When the mergedrefs file has gotten lines that end with "\r\r\r\n", this
will eventually clean it up. Each update will remove a single trailing CR.

Note that S8.lines is still used in eg Command.Unused, where it is parsing
git show-ref, and similar in Git/*. git commands don't include CR in their
output so that's ok.

Sponsored-by: Joshua Antonishen on Patreon
2 years agoadd PackageImports
Joey Hess [Mon, 30 Oct 2023 18:10:46 +0000 (14:10 -0400)]
add PackageImports

This makes loading it in ghci work when both crypton and cryptonite are
installed.

2 years agoReport on a possibly unknown slowness of `lookupkey`
mih [Mon, 30 Oct 2023 07:45:05 +0000 (07:45 +0000)]
Report on a possibly unknown slowness of `lookupkey`

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 27 Oct 2023 21:47:50 +0000 (17:47 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoremove wrongly nested comment
Joey Hess [Fri, 27 Oct 2023 21:47:23 +0000 (17:47 -0400)]
remove wrongly nested comment

This happened to prevent checkout on windows, due to filename too long.

2 years agoAdded a comment
jkniiv [Fri, 27 Oct 2023 18:45:03 +0000 (18:45 +0000)]
Added a comment

2 years agocomment
Joey Hess [Thu, 26 Oct 2023 19:22:22 +0000 (15:22 -0400)]
comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 26 Oct 2023 18:23:08 +0000 (14:23 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agodisplay summary after concurrent output is complete
Joey Hess [Thu, 26 Oct 2023 18:19:41 +0000 (14:19 -0400)]
display summary after concurrent output is complete

Otherwise, it could have buffered output that was displayed after the
summary. I started seeing that on my 12 core laptop, probably due to the
increased amount of concurrency.

Also seems possible, that, since the summary did exit, it might have
prevented displaying buffered output sometimes, or had other bad
results.

2 years agoavoid unused import
Joey Hess [Thu, 26 Oct 2023 18:00:21 +0000 (14:00 -0400)]
avoid unused import

2 years agosimplify
Joey Hess [Thu, 26 Oct 2023 17:59:33 +0000 (13:59 -0400)]
simplify

2 years agoRawFilePath conversion
Joey Hess [Thu, 26 Oct 2023 17:53:43 +0000 (13:53 -0400)]
RawFilePath conversion

May slightly speed up startup.

2 years agoAdded a comment
nobodyinperson [Thu, 26 Oct 2023 17:46:28 +0000 (17:46 +0000)]
Added a comment

2 years agoavoid double RawFilePath conversion
Joey Hess [Thu, 26 Oct 2023 17:41:17 +0000 (13:41 -0400)]
avoid double RawFilePath conversion

Minor optimisation.

2 years agopush RawFilePath down into Annex.ReplaceFile
Joey Hess [Thu, 26 Oct 2023 17:36:49 +0000 (13:36 -0400)]
push RawFilePath down into Annex.ReplaceFile

Minor optimisation, but a win in every case, except for a couple where
it's a wash.

Note that replaceFile still takes a FilePath, because it needs to
operate on Chars to truncate unicode filenames properly.

2 years agoeliminate s2w8 and w82s
Joey Hess [Thu, 26 Oct 2023 17:12:57 +0000 (13:12 -0400)]
eliminate s2w8 and w82s

Note that the use of s2w8 in genUUIDInNameSpace made it truncate unicode
characters. Luckily, genUUIDInNameSpace is only ever used on ASCII
strings as far as I can determine. In particular, git-remote-gcrypt's
gcrypt-id is an ASCII string.

2 years agosimplify base64 to only use ByteString
Joey Hess [Thu, 26 Oct 2023 16:42:32 +0000 (12:42 -0400)]
simplify base64 to only use ByteString

Note the use of fromString and toString from Data.ByteString.UTF8 dated
back to commit 9b93278e8abe1163d53fbf56909d0fe6d7de69e9. Back then it
was using the dataenc package for base64, which operated on Word8 and
String. But with the switch to sandi, it uses ByteString, and indeed
fromB64' and toB64' were already using ByteString without that
complication. So I think there is no risk of such an encoding related
breakage.

I also tested the case that 9b93278e8abe1163d53fbf56909d0fe6d7de69e9
fixed:

git-annex metadata -s foo='a …' x
git-annex metadata x
metadata x
  foo=a …

In Remote.Helper.Encryptable, it was avoiding using Utility.Base64
because of that UTF8 conversion. Since that's no longer done, it can
just use it now.

2 years ago(no commit message)
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Thu, 26 Oct 2023 04:19:36 +0000 (04:19 +0000)]

2 years agoadd
Joey Hess [Wed, 25 Oct 2023 18:44:57 +0000 (14:44 -0400)]
add

2 years agocomment
Joey Hess [Wed, 25 Oct 2023 18:07:16 +0000 (14:07 -0400)]
comment

2 years agocomment
Joey Hess [Wed, 25 Oct 2023 17:30:19 +0000 (13:30 -0400)]
comment

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Wed, 25 Oct 2023 17:21:12 +0000 (13:21 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoremove an out of date comment
Joey Hess [Wed, 25 Oct 2023 17:08:01 +0000 (13:08 -0400)]
remove an out of date comment

The mentioned todo was closed.

2 years agospeed up populating the importfeed database
Joey Hess [Wed, 25 Oct 2023 17:00:17 +0000 (13:00 -0400)]
speed up populating the importfeed database

Avoid conversion from ByteString to String for urls that will just be
converted right back to ByteString to go into the database.

Also setTempUrl is not used by importfeed, so avoid checking for temp
urls in this code path.

This benchmarks as only a small improvement. From 2.99s to 2.78s
when populating a database with 33k urls.

Note that it does not seem worth replacing URLString with URLByteString
generally, because the ways urls are used all entails either parseURI,
which takes a string, or passing a parameter to eg curl, which also is
currently a string.

Sponsored-by: Leon Schuermann on Patreon
2 years agoBrainstorm (semi)automatic description updating
nobodyinperson [Wed, 25 Oct 2023 11:27:17 +0000 (11:27 +0000)]
Brainstorm (semi)automatic description updating

2 years agocomment
Joey Hess [Tue, 24 Oct 2023 17:54:31 +0000 (13:54 -0400)]
comment

2 years agoImprove memory use of --all when using annex.private
Joey Hess [Tue, 24 Oct 2023 17:06:54 +0000 (13:06 -0400)]
Improve memory use of --all when using annex.private

This does not improve Annex.Branch.files at all, since it still uses ++ to
combine the lists, so forcing all but the last one.

But when there are a lot of files in the private journal, it does avoid
--all (or a bare repo) from buffering the filenames in memory.

See commit 653b7194727a27dfd185cdb0b752f8e190250fc4 for prior discussion of
this buffering.

Sponsored-by: Graham Spencer on Patreon
2 years agoAdded a comment: Minimum required version
v@80d733f66c2e675c27ee39df565ebed8d0ea12de [Tue, 24 Oct 2023 14:27:25 +0000 (14:27 +0000)]
Added a comment: Minimum required version

2 years agoAdded a comment: Outdated?
v@80d733f66c2e675c27ee39df565ebed8d0ea12de [Tue, 24 Oct 2023 13:26:44 +0000 (13:26 +0000)]
Added a comment: Outdated?

2 years agosqlite datbase for importfeed
Joey Hess [Mon, 23 Oct 2023 20:12:26 +0000 (16:12 -0400)]
sqlite datbase for importfeed

importfeed: Use caching database to avoid needing to list urls on every
run, and avoid using too much memory.

Benchmarking in my podcasts repo, importfeed got 1.42 seconds faster,
and memory use dropped from 203000k to 59408k.

Database.ImportFeed is Database.ContentIdentifier with the serial number
filed off. There is a bit of code duplication I would like to avoid,
particularly recordAnnexBranchTree, and getAnnexBranchTree. But these use
the persistent sqlite tables, so despite the code being the same, they
cannot be factored out.

Since this database includes the contentidentifier metadata, it will be
slightly redundant if a sqlite database is ever added for metadata. I
did consider making such a generic database and using it for this. But,
that would then need importfeed to update both the url database and the
metadata database, which is twice as much work diffing the git-annex
branch trees. Or would entagle updating two databases in a complex way.
So instead it seems better to optimise the database that
importfeed needs, and if the metadata database is used by another command,
use a little more disk space and do a little bit of redundant work to
update it.

Sponsored-by: unqueued on Patreon
2 years agoupdate
Joey Hess [Mon, 23 Oct 2023 18:18:49 +0000 (14:18 -0400)]
update

2 years agoupdate
Joey Hess [Mon, 23 Oct 2023 18:12:18 +0000 (14:12 -0400)]
update

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 23 Oct 2023 17:56:22 +0000 (13:56 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoimprove docs
Joey Hess [Mon, 23 Oct 2023 17:55:53 +0000 (13:55 -0400)]
improve docs

2 years agoAdded a comment
Manager2103 [Mon, 23 Oct 2023 17:50:22 +0000 (17:50 +0000)]
Added a comment

2 years agonotabug
Joey Hess [Mon, 23 Oct 2023 17:46:46 +0000 (13:46 -0400)]
notabug

2 years ago(no commit message)
matrss [Mon, 23 Oct 2023 15:16:18 +0000 (15:16 +0000)]

2 years agoAdded a comment
branch [Mon, 23 Oct 2023 09:57:00 +0000 (09:57 +0000)]
Added a comment

2 years agoAdded a comment
Manager2103 [Sat, 21 Oct 2023 17:22:53 +0000 (17:22 +0000)]
Added a comment

2 years agonotabug
Joey Hess [Sat, 21 Oct 2023 16:27:21 +0000 (12:27 -0400)]
notabug

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Sat, 21 Oct 2023 16:25:19 +0000 (12:25 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agocomment
Joey Hess [Fri, 20 Oct 2023 18:02:37 +0000 (14:02 -0400)]
comment

2 years agoFix crash of enableremote when the special remote has embedcreds=yes
Joey Hess [Fri, 20 Oct 2023 17:19:12 +0000 (13:19 -0400)]
Fix crash of enableremote when the special remote has embedcreds=yes

The crash occurred because writeCreds got called twice, and writeFileProtected
neglected to close its file handle, so the file was open for write when
written the second time.

It seems unncessary and suboptimal that writeCreds gets called twice.
One call is from getRemoteCredPair and the other from setRemoteCredPair'.
What happens is that in the enableremote case, code that also runs at
initremote does unncessary work. Might be possible to improve that, but
I've gone for the simple fix.

Sponsored-by: k0ld on Patreon
2 years agoremove vim dev hack
Joey Hess [Fri, 20 Oct 2023 16:49:59 +0000 (12:49 -0400)]
remove vim dev hack

This caused infinite recursion when I just used it, the dev target has
changed to re-run make. Anyway, not needed now.

2 years ago(no commit message)
Manager2103 [Fri, 20 Oct 2023 16:14:24 +0000 (16:14 +0000)]

2 years ago(no commit message)
Manager2103 [Fri, 20 Oct 2023 16:13:30 +0000 (16:13 +0000)]

2 years ago(no commit message)
Manager2103 [Fri, 20 Oct 2023 16:12:03 +0000 (16:12 +0000)]

2 years ago(no commit message)
Manager2103 [Fri, 20 Oct 2023 16:10:54 +0000 (16:10 +0000)]

2 years agoAdded a comment
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Tue, 17 Oct 2023 10:28:51 +0000 (10:28 +0000)]
Added a comment

2 years agoAdded a comment
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Tue, 17 Oct 2023 10:16:24 +0000 (10:16 +0000)]
Added a comment

2 years agonew bug: git annex enableremote locking issue
kdm9 [Tue, 17 Oct 2023 10:13:47 +0000 (10:13 +0000)]
new bug: git annex enableremote locking issue

2 years ago(no commit message)
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Tue, 17 Oct 2023 09:41:12 +0000 (09:41 +0000)]

2 years agoAdded a comment: Rclone B2 vs S3
emi@f69ad15b49bfecb4ea3836b6480e5ab8df9a5f7d [Sun, 15 Oct 2023 15:03:18 +0000 (15:03 +0000)]
Added a comment: Rclone B2 vs S3

2 years agoremoved
emi@f69ad15b49bfecb4ea3836b6480e5ab8df9a5f7d [Sun, 15 Oct 2023 15:02:45 +0000 (15:02 +0000)]
removed

2 years agoAdded a comment: Rsync vs S3
emi@f69ad15b49bfecb4ea3836b6480e5ab8df9a5f7d [Sun, 15 Oct 2023 15:01:24 +0000 (15:01 +0000)]
Added a comment: Rsync vs S3

2 years agocomment
Joey Hess [Sat, 14 Oct 2023 18:33:38 +0000 (14:33 -0400)]
comment

2 years agoonly stage regular files from the journal
Joey Hess [Tue, 10 Oct 2023 17:22:02 +0000 (13:22 -0400)]
only stage regular files from the journal

git-annex only writes regular files there, but other things may drop junk
like empty .DAV directories around the tree. And trying to hash such things
can have weird and hard to understand effects. So it seems best to do a
small amount of work in statting the journal file to make sure it's a
regular file.

Sponsored-by: Jack Hill on Patreon
2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 10 Oct 2023 16:56:09 +0000 (12:56 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoAdded a comment
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Tue, 10 Oct 2023 02:36:51 +0000 (02:36 +0000)]
Added a comment

2 years agoAdded a comment
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Mon, 9 Oct 2023 22:30:46 +0000 (22:30 +0000)]
Added a comment

2 years agocomment
Joey Hess [Mon, 9 Oct 2023 19:00:33 +0000 (15:00 -0400)]
comment

2 years agocomment
Joey Hess [Mon, 9 Oct 2023 18:47:19 +0000 (14:47 -0400)]
comment

2 years agocomment
Joey Hess [Mon, 9 Oct 2023 18:38:24 +0000 (14:38 -0400)]
comment

2 years agocommnet
Joey Hess [Mon, 9 Oct 2023 18:29:06 +0000 (14:29 -0400)]
commnet

2 years agocomment
Joey Hess [Mon, 9 Oct 2023 18:28:01 +0000 (14:28 -0400)]
comment

2 years agodon't say a supported version is unsupported
Joey Hess [Mon, 9 Oct 2023 18:26:24 +0000 (14:26 -0400)]
don't say a supported version is unsupported

When an automatic upgrade from eg v10 fails, it's still a supported
version, so don't say unsupported.

2 years ago(no commit message)
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec [Mon, 9 Oct 2023 07:41:37 +0000 (07:41 +0000)]

2 years agoAdded a comment
nobodyinperson [Fri, 6 Oct 2023 03:22:12 +0000 (03:22 +0000)]
Added a comment

2 years agoAdded a comment
branch [Thu, 5 Oct 2023 21:40:55 +0000 (21:40 +0000)]
Added a comment

2 years agoAdded a comment: Linux 64bit failing?
kdm9 [Wed, 4 Oct 2023 14:39:48 +0000 (14:39 +0000)]
Added a comment: Linux 64bit failing?

2 years ago(no commit message)
Atemu [Sun, 1 Oct 2023 10:06:18 +0000 (10:06 +0000)]

2 years ago(no commit message)
Atemu [Sun, 1 Oct 2023 09:38:29 +0000 (09:38 +0000)]

2 years agodrop NSF logo
Joey Hess [Wed, 27 Sep 2023 19:02:11 +0000 (15:02 -0400)]
drop NSF logo

Seems hotlinking is not allowed, and I don't want to copy it to some
other site (can't include it here due to licensing.)

2 years agofix NSF logo
Joey Hess [Wed, 27 Sep 2023 18:57:18 +0000 (14:57 -0400)]
fix NSF logo

2 years agoenable parallel ghc for building git-annex
Joey Hess [Tue, 26 Sep 2023 17:46:44 +0000 (13:46 -0400)]
enable parallel ghc for building git-annex

Via a build flag this time, that's off by default because hackage
demands it be so, but that gets turned on by the Makefile and by stack.

2 years agoRevert "enable parallel ghc for building git-annex"
Joey Hess [Tue, 26 Sep 2023 17:34:28 +0000 (13:34 -0400)]
Revert "enable parallel ghc for building git-annex"

This reverts commit 3f6aff89b1022b90c43a96b091d55e6e251d6f83.

Sadly hackage rejects cabal files using -j unless hidden behind an
option that is disabled by default.

2 years agoadd news item for git-annex 10.20230926
Joey Hess [Tue, 26 Sep 2023 17:30:00 +0000 (13:30 -0400)]
add news item for git-annex 10.20230926

2 years agoreleasing package git-annex version 10.20230926
Joey Hess [Tue, 26 Sep 2023 17:29:49 +0000 (13:29 -0400)]
releasing package git-annex version 10.20230926

2 years agoanalysis
Joey Hess [Tue, 26 Sep 2023 17:18:08 +0000 (13:18 -0400)]
analysis

2 years agofollowup
Joey Hess [Tue, 26 Sep 2023 17:04:42 +0000 (13:04 -0400)]
followup

2 years agoupdate
Joey Hess [Fri, 22 Sep 2023 20:03:09 +0000 (16:03 -0400)]
update

2 years agoclose
Joey Hess [Fri, 22 Sep 2023 19:52:28 +0000 (15:52 -0400)]
close

2 years agoclose
Joey Hess [Fri, 22 Sep 2023 19:47:40 +0000 (15:47 -0400)]
close

2 years agoclose
Joey Hess [Fri, 22 Sep 2023 19:45:49 +0000 (15:45 -0400)]
close

2 years agoclose
Joey Hess [Fri, 22 Sep 2023 19:38:58 +0000 (15:38 -0400)]
close

2 years agoclose
Joey Hess [Fri, 22 Sep 2023 19:37:47 +0000 (15:37 -0400)]
close