Commit graph

11865 commits

Author SHA1 Message Date
Joey Hess
53a40ca40f
code review 2022-12-26 13:09:40 -04:00
Joey Hess
e0c4c26d65
analysis 2022-12-22 15:34:36 -04:00
Joey Hess
d475f82c62
Added libgcc_s.so.1 to the linux standalone build so pthread_cancel will work
In Makefile, listed additional deps of Build/Standalone. Without that,
it does not get updated for the change to Utility/LinuxMkLibs.hs when
compiling incrementally.

Sponsored-by: Dartmouth College's DANDI project
2022-12-22 15:15:25 -04:00
yarikoptic
6cb85be1e7 initial report on odd crash 2022-12-21 18:34:06 +00:00
edef
654863027f bugs/blake3_hash_support: reroll patch, add comment 2022-12-16 14:52:25 +00:00
edef
94329160f3 bugs/blake3_hash_support: reroll patch with _256 suffix 2022-12-16 13:49:22 +00:00
yarikoptic
0865e79490 initial report on nfs test keeps failing 2022-12-12 21:23:09 +00:00
Joey Hess
fd5f082fbc
comment 2022-12-12 12:29:32 -04:00
Ilya_Shlyakhter
56f824d219 Added a comment: blake3 enhancement 2022-12-11 19:25:27 +00:00
Joey Hess
5aad1e1f82
fix confirmed finally 2022-12-10 22:26:44 -04:00
Joey Hess
e29bc2b7d7
comment 2022-12-09 12:18:37 -04:00
Joey Hess
65f9e7a3c7
fix deadlock in restagePointerFiles
Fix a hang that occasionally occurred during commands such as move.
(A bug introduced in 10.20220927, in
commit 6a3bd283b8)

The restage.log was kept locked while running a complex index refresh
action. In an unusual situation, that action could need to write to the
restage log, which caused a deadlock.

The solution is a two-stage process. First the restage.log is moved to a
work file, which is done with the lock held. Then the content of the work
file is read and processed, which happens without the lock being held.
This is all done in a crash-safe manner.

Note that streamRestageLog may not be fully safe to run concurrently
with itself. That's ok, because restagePointerFiles uses it with the
index lock held, so only one can be run at a time.

streamRestageLog does delete the restage.old file at the end without
locking. If a calcRestageLog is run concurrently, it will either see the
file content before it was deleted, or will see it's missing. Either is
ok, because at most this will cause calcRestageLog to report more
work remains to be done than there is.

Sponsored-by: Dartmouth College's Datalad project
2022-12-08 14:36:11 -04:00
Joey Hess
a7554f1a6a
analysis 2022-12-07 17:36:01 -04:00
Joey Hess
56699a7747
comment 2022-12-07 14:30:33 -04:00
Joey Hess
ac77aa40e7
speed up --pattern
The splitting of the tests into parts for parallelism made --pattern
do extra work, because init tests have to be run for each part, but
many of the parts are empty.

For example, git-annex test --pattern '/move (ssh remote)/'
took 12 seconds to run before. This improves the runtime to 4 seconds.

Sponsored-by: Dartmouth College's Datalad project
2022-12-07 13:51:22 -04:00
Joey Hess
b7ba6dfe48
comment 2022-12-07 13:00:29 -04:00
Joey Hess
8c89057006
comment 2022-12-07 12:36:58 -04:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
afa29c63c8 2022-12-07 14:46:39 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
4316de0f7c line breaks 2022-12-07 14:45:36 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
815db25181 Added a comment: keep me posted by email please 2022-12-07 14:40:52 +00:00
dckc@4f72e5f6436280fd19a91a9805af71b9921a4f9b
3aeb15c18b 2022-12-07 14:39:29 +00:00
yarikoptic
30d8056c26 Added a comment 2022-12-05 18:08:03 +00:00
Joey Hess
45f9c66b63
comment 2022-12-05 13:54:18 -04:00
Joey Hess
6eb0943d95
Merge branch 'master' of ssh://git-annex.branchable.com 2022-12-05 13:48:40 -04:00
Joey Hess
dddf7c7daa
comment 2022-12-05 13:30:05 -04:00
kanak@3c4f6e7d832d88751c617b25bdbac896417eb93b
31fc11771d Added a comment 2022-12-04 17:40:38 +00:00
kanak@3c4f6e7d832d88751c617b25bdbac896417eb93b
342da53d2d 2022-12-04 17:35:45 +00:00
edef
c732dc9c42 bugs/blake3_hash_support: *not* familiar enough, oops 2022-12-02 12:58:58 +00:00
edef
69dd3dcc89 submit BLAKE3 patch 2022-12-02 12:57:48 +00:00
yarikoptic
4f4234797e Added a comment 2022-11-29 22:25:43 +00:00
Joey Hess
184b8e70d3
comment 2022-11-29 17:58:59 -04:00
cnjr2
c900f3c1b5 Added a comment 2022-11-29 16:53:39 +00:00
cnjr2
a92a07b03e Added a comment: found related bug 2022-11-29 16:51:44 +00:00
Joey Hess
c29e2ed916
comment 2022-11-29 12:49:09 -04:00
Joey Hess
e7e7007e0c
explanss and close 2022-11-29 12:46:59 -04:00
cnjr2
3edc86ffe1 2022-11-29 12:29:42 +00:00
Joey Hess
2b5e6ff20a
test: Add --test-debug option
This work is supported by the NIH-funded NICEMAN (ReproNim TR&D3) project.
2022-11-28 15:12:53 -04:00
Joey Hess
022c14ec02
comment 2022-11-28 14:07:35 -04:00
beryllium@5bc3c32eb8156390f96e363e4ba38976567425ec
85ea582e2b 2022-11-24 07:11:26 +00:00
yarikoptic
e140b36fd5 initial report on stalled test 2022-11-23 03:15:51 +00:00
Joey Hess
63b33d4181
update 2022-11-18 16:23:20 -04:00
Joey Hess
3e20daccdd
more benchmarking work 2022-11-18 15:54:06 -04:00
Joey Hess
2b014f1a8b
don't frontload reconcileStaged in git-annex init
init: Avoid scanning for annexed files, which can be lengthy in a
large repository. Instead that scan is done on demand. This lets git-annex
init be run and some query commands be used in a repository without
waiting.

Note that autoinit already behaved this way, so while this will mean some
commands like git-annex get/unlock/add will do the scan the first time run,
that is not really a significant behavior change.

And, it's really better to have a consistent behavior. The reason for
the inconsistency was a strange bug discussed in
b3c4579c79. Avoiding reconcileStaged in
init will keep avoiding whatever that was.

Sponsored-by: Dartmouth College's DANDI project
2022-11-18 13:58:47 -04:00
Joey Hess
c834d2025a
queue more changes to keys db
Increasing the size of the queue 10x makes git-annex init 7% faster in a
repository with 86000 annexed files.

The memory use goes up, from 70876 kb to 85376 kb.
2022-11-18 13:29:34 -04:00
Joey Hess
8fcee4ac9d
Sped up the initial scanning for annexed files by 15%
Avoids database querying overhead when the database is newly created.

In the large repository where git-annex init took 24 seconds, this sped it
up to 20.47 seconds, a speedup of around 15%.

Sponsored-by: Dartmouth College's DANDI project
2022-11-18 13:16:57 -04:00
Joey Hess
814bb3a270
profiling and performance 2022-11-17 16:47:51 -04:00
Joey Hess
a91bf72684
Merge branch 'master' of ssh://git-annex.branchable.com 2022-11-09 16:29:16 -04:00
Joey Hess
b2cc63d5bf
export: fix multi-file delete bug
export: Fix a bug that left a file on a special remote when two files with
the same content were both deleted in the exported tree.

Case of the wrong data structure leading to the wrong result.
The DiffMap now contains all the old filenames, and all the new filenames.

Note that, when 2 files with the same content are both renamed,
it only renames the first, but deletes and re-exports the second.
Improving that is possible, but it would need to use a different temporary
filename. Anyway, that is an unusual case, and there are known to be other
unusual cases where export does not rename with maximum efficiency, IIRC.
(Or maybe this is the case that I remember?)

Sponsored-by: Dartmouth College's OpenNeuro project
2022-11-09 16:24:37 -04:00
nell@7201fe78ade251118ef3441f4e509b37cd836503
ca0c62f289 Added a comment 2022-11-09 19:51:20 +00:00
Joey Hess
56d563577f
analysis 2022-11-09 15:46:14 -04:00
Joey Hess
cdbee87a05
comment and retitle 2022-11-09 15:18:28 -04:00
Joey Hess
94ee608b2e
comment 2022-11-09 15:14:28 -04:00
Joey Hess
5409b0c5c4
close 2022-11-09 14:32:14 -04:00
nell@7201fe78ade251118ef3441f4e509b37cd836503
a219d24c8c Adding S3 special remote export bug report 2022-11-08 22:37:14 +00:00
jkniiv
9414eb0745 report on troubles with aws-0.23 and stack builds 2022-11-08 11:36:21 +00:00
Joey Hess
4f6c6114fb
avoid splitting repo tests into too small parts around -J16
The initTests have to be run once per part, and a point of diminishing
returns can be reached where more work is being done to set up for 1 or
2 tests than to run them.

This is better than a hard cap of -J8 or so, because it lets other
things than these particular tests still be parallelized at -J16.

Sponsored-by: Dartmouth College's Datalad project
2022-11-07 14:44:51 -04:00
Joey Hess
5e6cb47bd8
coment 2022-11-07 14:28:55 -04:00
Joey Hess
38e67e169d
followup 2022-11-07 12:26:04 -04:00
yarikoptic
7698e25f6f initial report on stalling test 2022-11-07 14:31:55 +00:00
xloem
8b5b078df3 2022-11-07 10:33:22 +00:00
yarikoptic
99b40cd6a2 Added a comment 2022-11-04 12:41:47 +00:00
Joey Hess
14f7a386f0
Make git-annex enable-tor work when using the linux standalone build
Clean the standalone environment before running the su command
to run "sh". Otherwise, PATH leaked through, causing it to run
git-annex.linux/bin/sh, but GIT_ANNEX_DIR was not set,
which caused that script to not work:

[2022-10-26 15:07:02.145466106] (Utility.Process) process [938146] call: pkexec ["sh","-c","cd '/home/joey/tmp/git-annex.linux/r' && '/home/joey/tmp/git-annex.linux/git-annex' 'enable-tor' '1000'"]
/home/joey/tmp/git-annex.linux/bin/sh: 4: exec: /exe/sh: not found

Changed programPath to not use GIT_ANNEX_PROGRAMPATH,
but instead run the scripts at the top of GIT_ANNEX_DIR.
That works both when the standalone environment is set up, and when it's
not.

Sponsored-by: Kevin Mueller on Patreon
2022-10-26 15:45:08 -04:00
Joey Hess
a8ce8ac75d
comment 2022-10-26 14:54:38 -04:00
Joey Hess
731e806c96
use lookupKeyStaged in --batch code paths
Make --batch mode handle unstaged annexed files consistently whether the
file is unlocked or not. Before this, a unstaged locked file
would have the symlink on disk examined and operated on in --batch mode,
while an unstaged unlocked file would be skipped.

Note that, when not in batch mode, unstaged files are skipped over too.
That is actually somewhat new behavior; as late as 7.20191114 a
command like `git-annex whereis .` would operate on unstaged locked
files and skip over unstaged unlocked files. That changed during
optimisation of CmdLine.Seek with apparently little fanfare or notice.

Turns out that rmurl still behaved that way when given an unstaged file
on the command line. It was changed to use lookupKeyStaged to
handle its --batch mode. That also affected its non-batch mode, but
since that's just catching up to the change earlier made to most
other commands, I have not mentioed that in the changelog.

It may be that other uses of lookupKey should also change to
lookupKeyStaged. But it may also be that would slow down some things,
or lead to unwanted behavior changes, so I've kept the changes minimal
for now.

An example of a place where the use of lookupKey is better than
lookupKeyStaged is in Command.AddUrl, where it looks to see if the file
already exists, and adds the url to the file when so. It does not matter
there whether the file is staged or not (when it's locked). The use of
lookupKey in Command.Unused likewise seems good (and faster).

Sponsored-by: Nicholas Golder-Manning on Patreon
2022-10-26 14:43:06 -04:00
Joey Hess
1944549a38
comment 2022-10-26 12:58:10 -04:00
jwodder
0d853cef01 2022-10-25 16:18:09 +00:00
gyurmo.gyuri@8d622eb91a0312fcb7e63e4f47a6e191c417a0c8
5e52325147 2022-10-23 08:30:57 +00:00
Joey Hess
cde2e61105
improve sqlite retrying behavior
Avoid hanging when a suspended git-annex process is keeping a sqlite
database locked.

Sponsored-by: Dartmouth College's Datalad project
2022-10-18 15:47:20 -04:00
Joey Hess
3149a1e2fe
More robust handling of ErrorBusy when writing to sqlite databases
While ErrorBusy and other exceptions were caught and the write retried for
up to 10 seconds, it was still possible for git-annex to eventually
give up and error out without writing to the database. Now it will retry
as long as necessary.

This does mean that, if one git-annex process is suspended just as sqlite
has locked the database for writing, another git-annex that tries to write
it it might get stuck retrying forever. But, that could already happen when
opening the sqlite database, which retries forever on ErrorBusy. This is an
area where git-annex is known to not behave well, there's a todo about the
general case of it.

Sponsored-by: Dartmouth College's Datalad project
2022-10-17 15:56:19 -04:00
Joey Hess
22f9598dfb
Merge branch 'master' of ssh://git-annex.branchable.com 2022-10-12 15:54:12 -04:00
Joey Hess
d5cd1de280
update and open a todo about something I'm pondering 2022-10-12 15:53:56 -04:00
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3
5bd79e717f Added a comment 2022-10-12 06:12:17 +00:00
Joey Hess
b312b2a30b
update 2022-10-11 15:07:52 -04:00
Joey Hess
c2ad84b423
all keys are still present on versioned remote after import of a tree
When importing from versioned remotes, fix tracking of the content of
deleted files.

Only S3 supports versioning so far, so only it was affected.

But, the draft import/export interface for external remotes also seemed to
need a change, so that versionedExport could be set.
2022-10-11 13:05:40 -04:00
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3
e22c3b3d7c 2022-10-11 09:12:00 +00:00
Joey Hess
4a42c69092
take lock in checkLogFile and calcLogFile
move: Fix openFile crash with -J

This does make them a bit slower, although usually the log file is not
very big, so even when it's being rewritten, they will not block for
long taking the lock. Still, little slowdowns may add up when moving a lot
file files.

A less expensive fix would be to use something lower level than openFile
that does not check if the file is already open for write by another
thread. But GHC does not seem to provide anything convenient; even mkFD
checks for a writing thread.

fullLines is no longer necessary since these functions no longer will
read the file while it's being written.

Sponsored-by: Dartmouth College's DANDI project
2022-10-07 13:19:17 -04:00
Joey Hess
85dbc21c1c
fix typo 2022-10-07 12:30:07 -04:00
jkniiv
b7d189d6c0 Added a comment 2022-10-06 16:04:41 +00:00
yarikoptic
91c9a27c5a Added a comment 2022-10-06 12:50:01 +00:00
yarikoptic
77825cadfa removed 2022-10-06 12:47:48 +00:00
yarikoptic
04117f0e52 Added a comment 2022-10-06 12:47:17 +00:00
jkniiv
c9bf143fc8 Added a comment 2022-10-06 06:21:40 +00:00
yarikoptic
5761ea969f 2022-10-06 01:37:24 +00:00
yarikoptic
f0a2341e5c initial report on locking issue on move 2022-10-05 21:25:00 +00:00
jules@a6ba859eba6f59bd980f294741b1ad9b7624552a
ee2442bbab Added a comment 2022-10-04 17:59:54 +00:00
Joey Hess
a679ef04ff
comments 2022-10-04 13:36:38 -04:00
Joey Hess
304ee15a42
comment 2022-10-04 13:06:55 -04:00
Joey Hess
15f9fcbcb1
avoid combining multiple words provided to trust/untrust/dead
* trust, untrust, semitrust, dead: Fix behavior when provided with
  multiple repositories to operate on.
* trust, untrust, semitrust, dead: When provided with no parameters,
  do not operate on a repository that has an empty name.

The man page and usage already indicated that multiple repos could be
provided to these commands, but they actually used unwords to combine
everything into string, and found a repo matching that string. This was
especially bad when no parameters resulted in the empty string and some
repo happened to have an empty description.

This does change the behavior, and it's possible someone relied on the
current behavior to eg, trust a repo by name with the name not quoted into
a single parameter. But fixing the empty string bug and matching the
documentation are worth breaking that usage.

Note that git-annex init/reinit do still unwords multiple parameters when
provided to them. That is inconsistent behavior, but it certianly seems
possible that something does run git-annex init with an unquoted
description, and I don't think it's worth breaking that just to make it more
consistent with these other commands.

Sponsored-by: Boyd Stephen Smith Jr. on Patreon
2022-10-03 13:48:40 -04:00
Joey Hess
9c9174329e
bug report 2022-10-03 13:00:29 -04:00
jkniiv
82dab0749c Added a comment 2022-10-01 08:23:43 +00:00
jkniiv
be0aca9fa0 Added a comment: restage.log was empty indeed 2022-10-01 05:14:17 +00:00
Joey Hess
d91c3500ea
add comments 2022-09-30 14:04:33 -04:00
Joey Hess
49ee07f93d
fix flush of a closed file handle
Avoids displaying warning about git-annex restage needing to be run in
situations where it does not.

Closing a handle flushes it anyway, so no need for an explict flush. The
handle does get closed twice, but that's fine, the second one does nothing.

Sponsored-by: Dartmouth College's DANDI project
2022-09-30 14:02:31 -04:00
Joey Hess
8d8f7ee884
comment 2022-09-30 13:42:30 -04:00
Joey Hess
fedee03654
comment 2022-09-30 13:26:30 -04:00
jkniiv
4e0eb2d124 reporting that we're now in some cases needlessly reminded to run restage 2022-09-30 13:40:01 +00:00
jules@a6ba859eba6f59bd980f294741b1ad9b7624552a
e4ff7014bd Added a comment: mess up commited to my branch 2022-09-29 09:26:06 +00:00
jules@a6ba859eba6f59bd980f294741b1ad9b7624552a
6cf8d066e3 2022-09-29 08:44:16 +00:00
kdm9
1ebce93be0 Added a comment 2022-09-28 12:55:49 +00:00
Joey Hess
e858315744
comment 2022-09-27 15:01:08 -04:00
Joey Hess
81e1cba6e1
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-27 14:58:02 -04:00
Joey Hess
61c5014ad1
comment 2022-09-27 14:57:56 -04:00
kdm9
49dd5e1b69 Added a comment 2022-09-27 18:40:40 +00:00
Joey Hess
eae89f73bb
comment 2022-09-27 14:31:06 -04:00
kdm9
518b89eb96 Added a comment 2022-09-27 17:49:53 +00:00
kdm9
27a9489ef3 v10nfs-bug 2022-09-27 17:48:02 +00:00
Joey Hess
640e2646a1
add comment 2022-09-26 16:05:46 -04:00
Joey Hess
17129fed66
fix wormhole --appid option position
p2p: Pass wormhole the --appid option before the receive/send command, as
it does not accept that option after the command

I'm left wondering, did I get this wrong from the beginning, or did
wormhole change its option parser? I'm reminded of the change in 0.8.2
where it silently changed what FD the pairing code was output to.
But, looking at the wormhole source, it was at least putting --appid before
send in its test suite from the introduction of the option.

So I think probably this has always been broken. On 2021-12-31 the --appid
option was enabled, and it took until now for someone to try
git-annex p2p --pair and notice that flag day broke it..

Sponsored-by: Svenne Krap on Patreon
2022-09-26 15:11:38 -04:00
Joey Hess
1d47a7e7e6
Revert "fix comment"
This reverts commit c39b057b2d.
2022-09-26 13:39:10 -04:00
Joey Hess
c39b057b2d
fix comment 2022-09-26 13:37:47 -04:00
Joey Hess
fc9212e6ea
comment 2022-09-26 13:25:04 -04:00
Joey Hess
6e21bd54d4
comment 2022-09-26 13:23:04 -04:00
Joey Hess
e05dd70544
handle upgrading repositories initialized with --version=9
As was attempted earlier in the buggy commit 0d2e3058ee

Avoided the bug that had by making the upgrade log be updated after each
upgrade step. So, after upgrade from v8 to v9, the log is updated, and
so Upgrade.V9's timeOfUpgrade check will find that it was upgraded
recently and so won't let it skip ahead to v10.

Sponsored-by: k0ld on Patreon
2022-09-26 12:59:51 -04:00
Joey Hess
6b658a7f54
comment 2022-09-26 12:20:11 -04:00
Joey Hess
98eb5ff84f
fix windows build 2022-09-26 12:08:04 -04:00
yarikoptic
87b62210d7 report on windows FTBFS 2022-09-26 15:47:23 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
d1762cc8e4 Added a comment 2022-09-25 19:43:31 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
ba6eabd76b 2022-09-25 02:01:26 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
bc26c85745 close bug "git commit smudges unncessarily" 2022-09-24 20:37:56 +00:00
asakurareiko@f3d908c71c009580228b264f63f21c7274df7476
a7e3e9d0c9 Added a comment 2022-09-24 19:43:47 +00:00
dukeofcool199
a887de360b 2022-09-24 19:24:19 +00:00
dukeofcool199
3a3e17cee5 2022-09-24 19:21:09 +00:00
Joey Hess
2478e9e03a
restage: New git-annex command, handles restaging unlocked files
This is much easier and less failure-prone than having the user run
git update-index --refresh themselves.

Sponsored-by: Dartmouth College's DANDI project
2022-09-23 16:29:59 -04:00
Joey Hess
d049228fd3
comment and todo 2022-09-22 14:48:32 -04:00
Joey Hess
0139a732fe
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-22 14:40:29 -04:00
Joey Hess
6e3c9bea2e
drain transferrer read handle when shutting it down
Fixes updating git index file after getting an unlocked file when
annex.stalldetection is set.

The transferrer may want to send additional protocol messages when it's
shut down. Closing the read handle prevented it from doing that, and caused
it to crash rather than cleanly shutting down.

Draining the handle without processing the protocol seemed ok to do,
because anything it outputs is going to be some side message displayed
at shutdown. Displaying those once per transferrer process that is running
seems unncessary.

Sponsored-by: Dartmouth College's DANDI project
2022-09-22 14:39:39 -04:00
yarikoptic
ea4a466b8b Added a comment 2022-09-22 18:14:15 +00:00
Joey Hess
f015f3e8e3
comment 2022-09-22 14:03:31 -04:00
Joey Hess
5ed774b701
comment 2022-09-22 13:40:13 -04:00
Joey Hess
72cdbd01f4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-22 13:37:26 -04:00
Joey Hess
368ad64160
correct my comment 2022-09-22 13:37:01 -04:00
yarikoptic
2415c8f8b9 Added a comment 2022-09-22 17:34:35 +00:00
Joey Hess
3f2bbae4cb
reproduced this now 2022-09-22 13:25:02 -04:00
jgoerzen
63f8b78e29 Added a comment 2022-09-22 03:40:04 +00:00
yarikoptic
79fa55ce88 Added a comment 2022-09-22 01:33:24 +00:00
yarikoptic
f75641f9f6 Added a comment 2022-09-22 01:03:18 +00:00
Joey Hess
6f0566d704
comment 2022-09-21 18:17:21 -04:00
Joey Hess
2731e3ab38
wording 2022-09-21 16:13:08 -04:00
Joey Hess
05592a2ddb
comment 2022-09-21 16:11:10 -04:00
yarikoptic
ad31c9fc19 Added a comment 2022-09-21 18:49:07 +00:00
yarikoptic
65cd69217c Added a comment 2022-09-21 18:46:50 +00:00
Joey Hess
2f16ff8cdc
comment 2022-09-21 13:17:21 -04:00
yarikoptic
f967316f31 initial report on odd "modified" status 2022-09-20 22:22:42 +00:00
Joey Hess
8d26fdd670
skip checkRepoConfigInaccessible when git directory specified explicitly
Fix a reversion that prevented git-annex from working in a repository when
--git-dir or GIT_DIR is specified to relocate the git directory to
somewhere else. (Introduced in version 10.20220525)

checkRepoConfigInaccessible could still run git config --list, just passing
--git-dir. It seems not necessary, because I know that passing --git-dir
bypasses git's check for repo ownership. I suppose it might be that git
eventually changes to check something about the ownership of the working
tree, so passing --git-dir without --work-tree would still be worth doing.
But for now this is the simple fix.

Sponsored-by: Nicholas Golder-Manning on Patreon
2022-09-20 14:52:43 -04:00
Joey Hess
d1467a9b8e
bug report rescued from forum 2022-09-20 14:16:15 -04:00
Joey Hess
8479ac6a50
fixed 2022-09-20 13:35:47 -04:00
Joey Hess
3adf1f24e2
comment 2022-09-20 12:56:16 -04:00
Joey Hess
612d2a8056
comment 2022-09-20 12:39:40 -04:00
jgoerzen
d3408ec63d Added a comment 2022-09-19 13:55:07 +00:00
Joey Hess
1fe9cf7043
deal with ignoreinode config setting
Improve handling of directory special remotes with importtree=yes whose
ignoreinode setting has been changed. (By either enableremote or by
upgrading to commit 3e2f1f73cbc5fc10475745b3c3133267bd1850a7.)

When getting a file from such a remote, accept the content that would have
been accepted with the previous ignoreinode setting.

After a change to ignoreinode, importing a tree from the remote will
re-import and generate new content identifiers using the new config. So
when ignoreinode has changed to no, the inodes will be learned, and after
that point, a change in an inode will be detected as a change. Before
re-importing, a change in an inode will be ignored, as it was before the
ignoreinode change. This seems acceptble, because the user can re-import
immediately if they urgently need to add inodes. And if not, they'll
do it sometime, presumably, and the change will take effect then.

Sponsored-by: Erik Bjäreholt on Patreon
2022-09-16 14:11:25 -04:00
Joey Hess
4a1030d51d
comments 2022-09-16 13:40:27 -04:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
50cdf369b9 closing 2022-09-13 23:32:49 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
d21bac4d88 Added a comment 2022-09-13 23:32:01 +00:00
Joey Hess
97825216b2
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-13 14:13:31 -04:00
Joey Hess
d722681a10
comment 2022-09-13 14:13:19 -04:00
yarikoptic
57543f11a8 Added a comment 2022-09-13 18:02:35 +00:00
Joey Hess
ea6c733e45
comment 2022-09-13 13:19:18 -04:00
Joey Hess
0648b6337b
comment 2022-09-13 12:49:49 -04:00
jgoerzen
e92dfbce72 Added a comment 2022-09-10 00:38:17 +00:00
jgoerzen
0d265841d4 Added a comment 2022-09-10 00:37:45 +00:00
jgoerzen
29a80ceed1 2022-09-10 00:37:09 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
cc053c820e Added a comment 2022-09-09 20:46:31 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
a2dd58e9d4 Added a comment 2022-09-09 20:45:13 +00:00
Joey Hess
d2c842e9a1
don't force use of conduit in withUrlOptionsPromptingCreds
Use curl for downloads from git remotes when annex.url-options and other
git configs are set.

If the url needs a password, curl will fail, and git credential will not be
used to prompt for it. But the user can set --netrc in url-options and
put the password in the netrc file.

This also means that url-options settings like -4 will take effect.
That was the case before commit 1883f7ef8f
forced conduit to be used.
2022-09-09 16:07:32 -04:00
Joey Hess
511e711bed
close 2022-09-09 14:53:26 -04:00
yarikoptic
22a311ef46 reporting flaky tests on ndoli 2022-09-08 15:01:50 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
2c4c56ea50 Added a comment: git-credential-netrc 2022-09-08 02:02:40 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
4f3a33d824 2022-09-08 01:10:06 +00:00
nick.guenther@e418ed3c763dff37995c2ed5da4232a7c6cee0a9
d8c98399e1 Added a comment 2022-09-08 00:28:32 +00:00
jgoerzen
aa4ba3fc7c Added a comment 2022-09-05 22:01:24 +00:00
jgoerzen
403dca7c42 Added a comment 2022-09-05 18:44:01 +00:00
jgoerzen
764fa6e230 Added a comment 2022-09-05 18:29:31 +00:00
Joey Hess
bd7b760cf0
comment 2022-09-05 14:00:50 -04:00
Joey Hess
8a4cfd4f2d
use getSymbolicLinkStatus not getFileStatus to avoid crash on broken symlink
Fix crash importing from a directory special remote that contains a broken
symlink.

The crash was in listImportableContentsM but some other places in
Remote.Directory also seemed like they could have the same problem.

Also audited for other places that have such a problem. Not all calls
to getFileStatus are bad, in some cases it's better to crash on something
unexpected. For example, `git-annex import path` when the path is a broken
symlink should crash, the same as when it does not exist. Many of the
getFileStatus calls are like that, particularly when they involve
.git/annex/objects which should never have a broken symlink in it.

Fixed a few other possible cases of the problem.

Sponsored-by: Lawrence Brogan on Patreon
2022-09-05 13:46:32 -04:00
Joey Hess
600d3f7141
Merge branch 'master' of ssh://git-annex.branchable.com 2022-09-05 13:20:44 -04:00
Joey Hess
ff0490c7c6
fix build 2022-09-05 13:20:23 -04:00
Lukey
7dd6e38945 Added a comment 2022-09-05 09:35:18 +00:00
jgoerzen
fa01f0bab9 Added a comment 2022-09-05 01:14:53 +00:00
jgoerzen
3159a28f88 2022-09-05 00:59:39 +00:00
jgoerzen
e7de6fffc1 2022-09-05 00:17:03 +00:00
jgoerzen
95e4021c09 2022-09-04 13:12:55 +00:00
jgoerzen
5fe6803375 2022-09-04 01:16:18 +00:00
yarikoptic
4fd4865493 FTBFS report 2022-08-31 14:47:35 +00:00
Joey Hess
22f492bea8
comment 2022-08-30 12:50:42 -04:00
Joey Hess
78440ca37d
move assistant and webapp build-depends into main build-depends
For some reason, cabal 3.4.1.0 builds w/o the assistant and webapp,
even when the flag is explicitly turned on. Moving the build-depends from
inside the if flag section to the main build-depends somehow fixes this.

Since the webapp build deps are thus always available, there is no reason
not to build the webapp when building the assistant. So, got rid of the
webapp build flag. Kept the assistant build flag for now, since building
without it does at least still speed up the build.

Sponsored-by: Brock Spratlen on Patreon
2022-08-29 15:23:49 -04:00
Joey Hess
faefab5e65
add bug and update comment 2022-08-29 14:49:44 -04:00
Joey Hess
4c080a20ac
comment 2022-08-29 14:25:30 -04:00
Atemu
3cd2a075b9 Added a comment 2022-08-28 17:56:20 +00:00
hoegiflo@befdf51af27be5af346451fe32863dadb1d37ad5
a2ee27851b Added a comment 2022-08-27 21:00:49 +00:00
Ilya_Shlyakhter
609a82c653 Added a comment: copying to S3: partsize/chunking 2022-08-25 17:45:49 +00:00
Atemu
090489832c Added a comment 2022-08-25 16:18:39 +00:00
hoegiflo@befdf51af27be5af346451fe32863dadb1d37ad5
b47ea090ca 2022-08-24 18:43:15 +00:00
hoegiflo@befdf51af27be5af346451fe32863dadb1d37ad5
7c4b37a7b1 2022-08-24 18:41:37 +00:00
Joey Hess
55bf1c6896
comment 2022-08-24 13:05:15 -04:00
Ilya_Shlyakhter
cfad39ccb4 added bug report about a cryptic error message when copying to S3 2022-08-24 14:47:16 +00:00
Ilya_Shlyakhter
274ef9db2a Added a comment: imports and symlinks 2022-08-22 20:40:42 +00:00
Joey Hess
28921af543
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 2021.

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-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --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-2021 --pretty=oneline -- "$f")" -a -z "$(git log --since=01-01-2021 --pretty=oneline -- "$d")" ]; then git rm -- "./$f" ; git rm -rf "./$d"; fi; fi; done
2022-08-22 12:27:10 -04:00
Joey Hess
c13b3aba98
add comment (and other old comment I forgot to add earlier) 2022-08-22 12:01:29 -04:00
Joey Hess
3ce71cad8c
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-22 11:50:21 -04:00
Yaroslav Halchenko
0151976676
Typo fix unncessary -> unnecessary.
Detected while reading recent CHANGELOG entry but then decided to apply
to entire codebase and docs since why not?
2022-08-20 09:40:19 -04:00
Ilya_Shlyakhter
c25ade4d97 Added a comment: imports and symlinks 2022-08-19 20:19:50 +00:00
Joey Hess
f091eff476
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-19 13:45:19 -04:00
Joey Hess
ed39979ac8
import: Avoid following symbolic links inside directories being imported
Too big a footgun.

This does not prevent attackers who can write to the directory being
imported from racing the check. But they can cause anything to be imported
anyway, so would be limited to getting the legacy import to follow into a
directory they do not write to, and move files out of it into the annex.
(The directory special remote does not have that problem since it does not
move files.)

Sponsored-by: Jack Hill on Patreon
2022-08-19 13:31:16 -04:00
Ilya_Shlyakhter
39763ddee7 Added a comment: git-annex-import and symlinks 2022-08-19 17:18:37 +00:00
Joey Hess
4ca8e95773
comment 2022-08-19 13:06:38 -04:00
Joey Hess
94029995fa
fix git-annex add regression on deleted file
Fix a regression in 10.20220624 that caused git-annex add to crash when
there was an unstaged deletion.

Sponsored-by: Dartmouth College's Datalad project
2022-08-19 12:55:49 -04:00
skcin
fb57fd9b96 Added a comment: Option to not follow symlinks? 2022-08-18 15:32:43 +00:00
yarikoptic
c80ea222da added datalad project tag to the issue 2022-08-17 19:56:25 +00:00
yarikoptic
3368172a10 Added a comment 2022-08-17 19:55:45 +00:00
yarikoptic
702f6fcb00 initial report on getSymbolicLinkStatus crashing upon file removal 2022-08-17 18:46:27 +00:00
Joey Hess
0d33a7a029
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-17 13:16:06 -04:00
Joey Hess
b801812660
init: probe if sqlite works
Help the user get annex.dbdir configured when their filesystem is not
one that sqlite works on.

The change in Database.Handle makes an error from sqlite not be ignored
besides being displayed, which it was before. I can't see any reason
git-annex would want to ignore these errors.

I chose to use the fsck database rather than the keys database because
opening the keys database populates it, and see commit
b3c4579c79.

The placement of the call to checkSqliteWorks inside checkInitializeAllowed
avoids annex.uuid getting set before it's called.

Sponsored-by: Dartmouth College's Datalad project
2022-08-17 13:12:26 -04:00
account+annex@806a7c5f67b75d530bced4ea294c77681ebdf766
ec3863e8d4 Added a comment 2022-08-17 16:59:17 +00:00
Joey Hess
fc2d10d2cd
fixed in v10 2022-08-17 12:40:43 -04:00
account+annex@806a7c5f67b75d530bced4ea294c77681ebdf766
c382375d49 2022-08-17 14:28:27 +00:00
Joey Hess
7286f408fa
close 2022-08-15 14:33:40 -04:00
Joey Hess
195f870265
comment 2022-08-15 14:05:05 -04:00
Joey Hess
d07a1dbdee
comment about annex.dbdir on relevant bugs 2022-08-12 13:31:27 -04:00
Joey Hess
4cfe17a9e8
use a subdirectory of annex.dbdir
This allows annex.dbdir to be set globally or always set to the same
value when needed. Each repository uses a subdirectory of it.

Sponsored-by: Dartmouth College's Datalad project
2022-08-12 13:18:15 -04:00
Joey Hess
16e82f6cf9
comment 2022-08-12 13:10:54 -04:00
Joey Hess
b80ad3a2ad
comment 2022-08-11 17:16:35 -04:00
Joey Hess
e9ffffbb8f
close 2022-08-10 12:29:29 -04:00
Atemu
434a1423c0 Added a comment 2022-08-10 12:35:28 +00:00
yarikoptic
bd3c68a57a Added a comment 2022-08-09 19:12:40 +00:00
yarikoptic
7cfab36e10 Added a comment 2022-08-09 18:02:32 +00:00
yarikoptic
dc10e9fdc2 Added a comment 2022-08-09 18:02:08 +00:00
Joey Hess
21cfd0ea98
fix reversion
3a513cfe73 caused a reversion in addurl.
The type of addSmall changed, but the void prevented the type checker
from helping notice this. Since it now returns a CommandPerform, the
cleanup action has to be run.

Sponsored-by: Dartmouth College's Datalad project
2022-08-09 13:49:30 -04:00
Joey Hess
eb2acf5fd7
comment 2022-08-09 13:26:47 -04:00
Joey Hess
4a68abace1
comment 2022-08-09 13:21:58 -04:00
Joey Hess
607c57d66b
comment 2022-08-09 13:06:48 -04:00
Joey Hess
4a5b50fae8
comment 2022-08-09 12:33:24 -04:00
yarikoptic
5595d0ef96 initial report on possible regression due to --dry-run 2022-08-09 13:37:39 +00:00
Atemu
50c4632740 Added a comment 2022-08-09 06:22:50 +00:00
Atemu
007d89f3e9 Added a comment 2022-08-09 06:14:05 +00:00
rinomizu5@5ead4c82685c65d7717dbd5591b80425036ae9e3
8adb37a98c Added a comment 2022-08-09 00:33:56 +00:00
Joey Hess
abd417d4fe
Avoid running multiple bup split processes concurrently
Since bup split is not concurrency safe.

Used a lock file so that 2 git-annex processes only run one bup split
between them (per bup repo).

(Concurrent writes from different git-annex repository clones to the same
bup repo could still have concurrency problems.)

Sponsored-by: Noam Kremen on Patreon
2022-08-08 18:54:06 -04:00
Joey Hess
04247fb4d0
avoid surprising "not found" error when copying to a http remote
git-annex copy --to a http remote will of course fail, as that's not
supported. But git-annex copy first checks if the content is already
present in the remote, and that threw a "not found".

Looks to me like other remotes that use Url.checkBoth in their checkPresent
do just return false when it fails. And Url.checkBoth does display
errors when unusual errors occur. So I'm pretty sure removing this error
message is ok.

Sponsored-by: Jarkko Kniivilä on Patreon
2022-08-08 11:57:24 -04:00
Joey Hess
645a66a084
comment 2022-08-08 11:26:25 -04:00
Joey Hess
7a235469e7
comment 2022-08-08 11:23:54 -04:00
Joey Hess
8d3a6ae527
comment 2022-08-08 11:15:04 -04:00
rinomizu5@5ead4c82685c65d7717dbd5591b80425036ae9e3
d4b29293b8 Added a comment: Additional Questions: git annex copy failed 2022-08-08 10:31:26 +00:00
rinomizu5@5ead4c82685c65d7717dbd5591b80425036ae9e3
96794dbd0a Added a comment: Additional Questions: git annex copy failed 2022-08-08 10:31:04 +00:00
Atemu
dec58c032c Added a comment 2022-08-07 08:05:24 +00:00
Joey Hess
6d762fafae
idea 2022-08-05 14:54:10 -04:00
Joey Hess
ee73bc7a3c
tag datalad since they have an issue about this 2022-08-05 14:48:21 -04:00
Joey Hess
7ac161395b
comment 2022-08-05 14:10:47 -04:00
Joey Hess
9e66a332b4
Merge branch 'master' of ssh://git-annex.branchable.com 2022-08-05 13:57:32 -04:00
Joey Hess
5bc70e2da5
When bup split fails, display its stderr
It seems worth noting here that I emailed bup's author about bup split
being noisy on stderr even with -q in approximately 2011. That never got
fixed. Its current repo on github only accepts pull requests, not bug
reports. Needing to add such complexity to deal with such a longstanding
unfixed issue is not fun.

Sponsored-by: Kevin Mueller on Patreon
2022-08-05 13:57:20 -04:00
yarikoptic
e884d2ed4c Added a comment 2022-08-05 16:17:09 +00:00
Joey Hess
a23fd7349f
work around git segfault
Work around bug in git 2.37 that causes a segfault when when
core.untrackedCache is set, and broke git-annex init.

Depending on when git gets fixed and how widely the buggy versions are
used, this could be reverted quite soon, or need to linger for a long time.
It only makes git-annex init a tiny bit slower in a new repo.

Sponsored-by: Max Thoursie on Patreon
2022-08-04 14:20:57 -04:00