summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* optimisationGravatar Joey Hess2011-12-12
| | | | avoids a useless diff from git-annex..refs/heads/git-annex
* optimiationGravatar Joey Hess2011-12-12
| | | | avoids reading the config of a local remote twice in a row
* cleanupGravatar Joey Hess2011-12-12
|
* always find optimal mergeGravatar Joey Hess2011-12-12
| | | | | | | | | | Testing b9ac5854549636493449fea6830364a01159fbf6, it didn't find the optimal union merge, the second sha was the one to use, at least in the case I tried. Let's just try all shas to see if any can be reused. I stopped using the expensive nub, so despite the use of sets to sort/uniq file contents, this is probably as fast or faster than it was before.
* refactorGravatar Joey Hess2011-12-12
|
* more efficient union mergesGravatar Joey Hess2011-12-11
| | | | | | | | | | | | | | Tries to avoid generating a new object when the merged content has the same lines that were in the old object. I've noticed some merge commits that only move lines around, like this: - 1323478057.181191s 1 be23c3ac-0ee5-11e0-b185-3b0f9b5b00c5 1323204972.062151s 1 87e06c7a-7388-11e0-ba07-03cdf300bd87 ++1323478057.181191s 1 be23c3ac-0ee5-11e0-b185-3b0f9b5b00c5 Unsure if this will really save anything in practice, since it only looks at one of the two old objects, and maybe I didn't pick the best one.
* add news item for git-annex 3.20111211Gravatar Joey Hess2011-12-11
|
* 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
|