summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* releasing version 3.201112113.20111211Gravatar Joey Hess2011-12-11
|
* avoid redundant call to updateIndexGravatar Joey Hess2011-12-11
| | | | commitBranch calls updateIndex
* detect and recover from branch push/commit raceGravatar Joey Hess2011-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dealing with a race without using locking is exceedingly difficult and tricky. Fully tested, I hope. There are three places left where the branch can be updated, that are not covered by the race recovery code. Let's prove they're all immune to the race: 1. tryFastForwardTo checks to see if a fast-forward can be done, and then does git-update-ref on the branch to fast-forward it. If a push comes in before the check, then either no fast-forward will be done (ok), or the push set the branch to a ref that can still be fast-forwarded (also ok) If a push comes in after the check, the git-update-ref will undo the ref change made by the push. It's as if the push did not come in, and the next git-push will see this, and try to re-do it. (acceptable) 2. When creating the branch for the very first time, an empty index is created, and a commit of it made to the branch. The commit's ref is recorded as the current state of the index. If a push came in during that, it will be noticed the next time a commit is made to the branch, since the branch will have changed. (ok) 3. Creating the branch from an existing remote branch involves making the branch, and then getting its ref, and recording that the index reflects that ref. If a push creates the branch first, git-branch will fail (ok). If the branch is created and a racing push is then able to change it (highly unlikely!) we're still ok, because it first records the ref into the index.lck, and then updating the index. The race can cause the index.lck to have the old branch ref, while the index has the newly pushed branch merged into it, but that only results in an unnecessary update of the index file later on.
* a new bug report to track a raceGravatar Joey Hess2011-12-11
|
* updateGravatar Joey Hess2011-12-11
|
* optimize index updatingGravatar Joey Hess2011-12-11
| | | | | | | | | | | The last branch ref that the index was updated to is stored in .git/annex/index.lck, and the index only updated when the current branch ref differs. (The .lck file should later be used for locking too.) Some more optimization is still needed, since there is some redundancy in calls to git show-ref.
* slow, stupid, and safe index updatingGravatar Joey Hess2011-12-11
| | | | | | | | | | | | | | | | | | Always merge the git-annex branch into .git/annex/index before making a commit from the index. This ensures that, when the branch has been changed in any way (by a push being received, or changes pulled directly into it, or even by the user checking it out, and committing a change), the index reflects those changes. This is much too slow; it needs to be optimised to only update the index when the branch has really changed, not every time. Also, there is an unhandled race, when a change is made to the branch right after the index gets updated. I left it in for now because it's unlikely and I didn't want to complicate things with additional locking yet.
* new bugGravatar Joey Hess2011-12-11
|
* move a file location to Locations.hsGravatar Joey Hess2011-12-11
|
* closeGravatar Joey Hess2011-12-11
|
* better syntaxGravatar Joey Hess2011-12-10
|
* ensure local remote is initialized when copying to itGravatar Joey Hess2011-12-10
| | | | | | | | | | | | | | | | | Needed due to this scenario: Bare repo origin is made, foo is cloned from it; foo is initalized; a file is added to foo's annex; git annex move --to origin Since the git-annex branch has not yet been pushed to origin, it doesn't auto-initialize. When the content is sent to it, it's stored, but the remote has NoUUID, and so nothing is logged in the location log. Then the content is removed from the local repo, and git-annex has lost track of it. git annex fsck in origin will find the lost content, but let's not let this happen. Content should only be sent to initalized remotes. This cannot happen for non-local remotes, since git-annex-shell always checks that the repo is initialized.
* updateGravatar Joey Hess2011-12-10
|
* Fix bug in last version in getting contents from bare repositories.Gravatar Joey Hess2011-12-10
|
* (no commit message)Gravatar http://schnouki.net/2011-12-10
|
* Added a commentGravatar http://joey.kitenet.net/2011-12-10
|
* version dependency on old monad-controlGravatar Joey Hess2011-12-10
| | | | This should let cabal build it with the right version.
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2011-12-10
|\
* | no need to show, it's a stringGravatar Joey Hess2011-12-10
| |
| * Added a commentGravatar http://www.joachim-breitner.de/2011-12-10
| |
* | separate operationsGravatar Joey Hess2011-12-10
| |
* | sync: New command that synchronises the local repository and default remote, ↵Gravatar Joey Hess2011-12-09
| | | | | | | | by running git commit, pull, and push for you.
* | avoid some readGravatar Joey Hess2011-12-09
| |
| * Added a commentGravatar http://joey.kitenet.net/2011-12-09
| |
* | some work on avoiding partial functionsGravatar Joey Hess2011-12-09
| | | | | | | | | | There are still hundreds of places that use partial functions head, tail, init, and last.
| * brr, so many typos today.Gravatar http://www.joachim-breitner.de/2011-12-09
| |
| * typoGravatar http://www.joachim-breitner.de/2011-12-09
| |
| * (no commit message)Gravatar http://www.joachim-breitner.de/2011-12-09
|/
* inverted logicGravatar Joey Hess2011-12-09
|
* cleanupGravatar Joey Hess2011-12-09
|
* Merge remote-tracking branch 'origin/master'Gravatar Joey Hess2011-12-09
|\
* | unannex improvementsGravatar Joey Hess2011-12-09
| | | | | | | | | | | | | | | | | | Added files don't have to be committed before they can be unannexed. unannex no longer commits existing staged changes unannex of the last file in a directory now works, before it failed because git rm deleted the directory out from under it,
* | factor out a stopUnlessGravatar Joey Hess2011-12-09
| | | | | | | | code melt for lunch
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU2011-12-09
| |
* | hslintGravatar Joey Hess2011-12-09
| |
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU2011-12-08
| |
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU2011-12-08
|/
* Fix caching of decrypted ciphers, which failed when drop had to check ↵Gravatar Joey Hess2011-12-08
| | | | multiple different encrypted special remotes.
* (no commit message)Gravatar http://gebi.myopenid.com/2011-12-08
|
* Added a commentGravatar http://joey.kitenet.net/2011-12-07
|
* add: If interrupted, add can leave files converted to symlinks but not yet ↵Gravatar Joey Hess2011-12-07
| | | | added to git. Running the add again will now clean up this situtation.
* change footerGravatar Joey Hess2011-12-07
|
* responseGravatar Joey Hess2011-12-07
|
* Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU2011-12-07
|
* (no commit message)Gravatar http://gebi.myopenid.com/2011-12-07
|
* (no commit message)Gravatar http://gebi.myopenid.com/2011-12-07
|
* (no commit message)Gravatar http://gebi.myopenid.com/2011-12-07
|
* Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawnXybLxkPMYpP3yw4b_I6IdC3cKTD-xEdU2011-12-06
|
* responseGravatar Joey Hess2011-12-06
|
* (no commit message)Gravatar http://gebi.myopenid.com/2011-12-06
|