improve alwayscommit=false mode
Now changes are staged into the branch's index, but not committed, which avoids growing a large journal. And sync and merge always explicitly commit, ensuring that even when they do nothing else, they commit the staged changes. Added a flag file to indicate that the branch's journal contains uncommitted changes. (Could use git ls-files, but don't want to run that every time.) In the future, this ability to have uncommitted changes staged in the journal might be used on remotes after a series of oneshot commands.
This commit is contained in:
parent
b49c0c2633
commit
1f73db3469
6 changed files with 44 additions and 7 deletions
|
@ -22,6 +22,7 @@ module Locations (
|
|||
gitAnnexJournalLock,
|
||||
gitAnnexIndex,
|
||||
gitAnnexIndexLock,
|
||||
gitAnnexIndexDirty,
|
||||
gitAnnexSshDir,
|
||||
isLinkToAnnex,
|
||||
annexHashes,
|
||||
|
@ -143,6 +144,10 @@ gitAnnexIndex r = gitAnnexDir r </> "index"
|
|||
gitAnnexIndexLock :: Git.Repo -> FilePath
|
||||
gitAnnexIndexLock r = gitAnnexDir r </> "index.lck"
|
||||
|
||||
{- Flag file for .git/annex/index. -}
|
||||
gitAnnexIndexDirty :: Git.Repo -> FilePath
|
||||
gitAnnexIndexDirty r = gitAnnexDir r </> "index.dirty"
|
||||
|
||||
{- .git/annex/ssh/ is used for ssh connection caching -}
|
||||
gitAnnexSshDir :: Git.Repo -> FilePath
|
||||
gitAnnexSshDir r = addTrailingPathSeparator $ gitAnnexDir r </> "ssh"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue