git-annex/Git
Joey Hess b32c4c2e98
atomic git-annex branch update when regrafting in transition
Fix a bug where interrupting git-annex while it is updating the git-annex
branch could lead to git fsck complaining about missing tree objects.

Interrupting git-annex while regraftexports is running in a transition
that is forgetting git-annex branch history would leave the
repository with a git-annex branch that did not contain the tree shas
listed in export.log. That lets those trees be garbage collected.

A subsequent run of the same transition then regrafts the trees listed
in export.log into the git-annex branch. But those trees have been lost.

Note that both sides of `if neednewlocalbranch` are atomic now. I had
thought only the True side needed to be, but I do think there may be
cases where the False side needs to be as well.

Sponsored-by: Dartmouth College's OpenNeuro project
2024-06-07 16:34:10 -04:00
..
Command update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Remote Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
AutoCorrect.hs all commands building except for assistant 2019-12-05 14:41:18 -04:00
Branch.hs atomic git-annex branch update when regrafting in transition 2024-06-07 16:34:10 -04:00
BuildVersion.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Bundle.hs git-remote-annex: incremental pushing 2024-05-10 13:32:37 -04:00
CatFile.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
CheckAttr.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
CheckIgnore.hs more RawFilePath conversion 2020-11-03 10:11:04 -04:00
Command.hs convert some error to giveup 2021-12-09 14:36:54 -04:00
Config.hs fix some build warnings from ghc 9.4.6 2023-09-21 13:40:22 -04:00
ConfigTypes.hs Support core.sharedRepository=0xxx at long last 2023-04-26 17:03:29 -04:00
Construct.hs RawFilePath conversion 2023-10-26 13:58:49 -04:00
Credential.hs split out Utility.Url.Parse 2023-08-14 12:28:10 -04:00
CurrentRepo.hs fix some build warnings from ghc 9.4.6 2023-09-21 12:11:01 -04:00
DiffTree.hs rename Git.Filename to Git.Quote 2023-04-12 17:22:03 -04:00
DiffTreeItem.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Env.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
FileMode.hs Fix ambigous typos 2023-03-17 15:14:47 -04:00
FilePath.hs implement importChanges optimisaton (not used yet) 2023-05-31 16:01:34 -04:00
FilterProcess.hs filter-process: Fix protocol for empty files 2022-07-13 17:13:54 -04:00
Fsck.hs A few more of typo fixes/skip as detected with bleeding edge codespell 2024-05-01 20:06:08 -04:00
GCrypt.hs sync: Fix parsing of gcrypt::rsync:// urls that use a relative path 2023-03-23 15:20:00 -04:00
HashObject.hs make hashFile support paths with newlines 2023-03-13 13:43:40 -04:00
History.hs convert to withCreateProcess for async exception safety 2020-06-03 15:48:09 -04:00
Hook.hs windows hook scripts newlines without CR 2023-11-02 13:37:04 -04:00
Index.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
LockFile.hs fix build with unix-2.8.0 2023-08-01 18:41:27 -04:00
Log.hs migrate --update gets keys 2023-12-07 17:25:56 -04:00
LsFiles.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
LsTree.hs rename Git.Filename to Git.Quote 2023-04-12 17:22:03 -04:00
Merge.hs sync --quiet 2021-07-19 11:28:47 -04:00
Objects.hs fix empty tree import when directory does not exist 2023-08-15 12:57:41 -04:00
PktLine.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
Queue.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Quote.hs rename Git.Filename to Git.Quote 2023-04-12 17:22:03 -04:00
Ref.hs fix --is-ancestor option 2024-05-13 13:52:58 -04:00
RefLog.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Remote.hs git clone support for git-remote-annex 2024-05-08 17:07:33 -04:00
Repair.hs fix empty tree import when directory does not exist 2023-08-15 12:57:41 -04:00
Sha.hs filter out control characters in error messages 2023-04-10 13:50:51 -04:00
Ssh.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Status.hs convert TopFilePath to use RawFilePath 2019-12-09 15:07:21 -04:00
Tree.hs optimise adjustTree when adding many TreeItems (take 2) 2024-01-16 11:53:57 -04:00
Types.hs Override safe.bareRepository for git remotes 2023-09-07 14:56:26 -04:00
UnionMerge.hs fix indent for readability 2024-03-08 13:38:46 -04:00
UpdateIndex.hs rawfilepath conversion 2023-02-27 15:06:32 -04:00
Url.hs avoid partial functions in Git.Url 2021-01-18 15:07:23 -04:00
Version.hs work around git "defense in depth" breakage with git clone checking for hooks 2024-05-24 15:49:53 -04:00