summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* split out Git/Command.hsGravatar Joey Hess2011-12-14
|
* split more stuff out of Git.hsGravatar Joey Hess2011-12-14
|
* typoGravatar Joey Hess2011-12-14
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2011-12-14
|\
| * Added a commentGravatar http://joey.kitenet.net/2011-12-14
| |
| * (no commit message)Gravatar http://adamspiers.myopenid.com/2011-12-13
| |
| * add a link to git-union-mergeGravatar http://adamspiers.myopenid.com/2011-12-13
| |
| * Added a commentGravatar http://joey.kitenet.net/2011-12-13
| |
* | remove dead codeGravatar Joey Hess2011-12-13
| |
* | split out two more Git modulesGravatar Joey Hess2011-12-13
| |
* | move commit to Git.BranchGravatar Joey Hess2011-12-13
| |
* | split out three modules from GitGravatar Joey Hess2011-12-13
| | | | | | | | | | Constructors and configuration make sense in separate modules. A separate Git.Types is needed to avoid cycles.
| * Added a commentGravatar http://www.joachim-breitner.de/2011-12-13
| |
| * Added a commentGravatar http://www.joachim-breitner.de/2011-12-13
|/
* avoid closing pipe before all the shas are read from itGravatar Joey Hess2011-12-12
| | | | | | | Could have just used hGetContentsStrict here, but that would require storing all the shas in memory. Since this is called at the end of a git-annex run, it may have created a *lot* of shas, so I avoid that memory use and stream them out like before.
* broke out Git/HashObject.hsGravatar Joey Hess2011-12-12
|
* broke out Git/Branch.hs and reorganizedGravatar Joey Hess2011-12-12
|
* split out Git/Ref.hsGravatar Joey Hess2011-12-12
|
* split out Annex/Journal.hsGravatar Joey Hess2011-12-12
|
* split out Annex/BranchState.hsGravatar Joey Hess2011-12-12
|
* update commentGravatar Joey Hess2011-12-12
|
* reinject: Add a sanity check for using an annexed file as the source file.Gravatar Joey Hess2011-12-12
|
* optimisationGravatar Joey Hess2011-12-12
| | | | avoids a redundant call to git show-ref
* 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
| |