summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* rewrite loggedkeys to use git-annex branchGravatar Joey Hess2011-06-22
| | | | | | That sucking sound is a whole page of code vanishing to be replaced with return . catMaybes . map (logFileKey . takeFileName) =<< Branch.files What can I say, git is my database, and haskell my copilot.
* let's have the major version number be annex.versionGravatar Joey Hess2011-06-22
|
* bugfix: restore index file env varGravatar Joey Hess2011-06-22
| | | | | | | | | This fixes precommit, since in that hook, git sets the env var to write to the lock file, which avoids git add failing due to the presence of the lock file. (Took me a good hour and a half of confusion to figure this out.) Test suite now passes 100%! Only the upgrade code still remains to be written.
* commit git-annex branch when copying to a remote (locally)Gravatar Joey Hess2011-06-22
| | | | | | | Otherwise, the location log changes are only staged in its index, and this can confuse matters if pulling or cloning from the remote. The test suite was failing because this wasn't done.
* sshGravatar Joey Hess2011-06-22
|
* merge bugfixGravatar Joey Hess2011-06-22
| | | | | Use GitRepo functions to call git, the bug occurred when it was run in a git repo that was not the same as the repo being acted on.
* reove 2 tests that no longer make sense (state is not autocommitted)Gravatar Joey Hess2011-06-22
|
* squelched git-cat-file's error message when file DNEGravatar Joey Hess2011-06-22
| | | | | This seemed much too hard to do. I just wanted to close stderr when running it.
* decruftGravatar Joey Hess2011-06-22
|
* add merge subcommandGravatar Joey Hess2011-06-22
|
* improve bare repo handingGravatar Joey Hess2011-06-22
| | | | | Many more commands can work in bare repos now, thanks to the git-annex branch.
* improve version checking for v3Gravatar Joey Hess2011-06-22
| | | | | | | | | Do not set annex.version whenever any command is run. Just do it in init. This ensures that, if a repo has annex.version=3, it has a git-annex branch, so we don't have to run a command every time to check for the branch. Remove the old ad-hoc logic for v0 and v1, to simplify version checking.
* updateGravatar Joey Hess2011-06-22
|
* stub in v2 upgradeGravatar Joey Hess2011-06-22
|
* adjust walkthrough for git-annex branchGravatar Joey Hess2011-06-22
| | | | don't just pull master.. pull everything
* better branch displayGravatar Joey Hess2011-06-22
|
* update documentation that mentioned .git-annex/Gravatar Joey Hess2011-06-22
|
* remove some tests that no longer make senseGravatar Joey Hess2011-06-22
|
* store trust.log and remote.log in the git-annex branchGravatar Joey Hess2011-06-22
| | | | .. and I think that's everything that will use the branch
* moveGravatar Joey Hess2011-06-22
|
* fixed logFileGravatar Joey Hess2011-06-22
|
* update for git-annex branchGravatar Joey Hess2011-06-22
| | | | | | | | | | | stop changing gitattributes on init create git-annex branch on init ugly special case for init in a bare repository goes away, yay! git annex init is also faster, at least in a large existing repo, as it does not need to run the slow 'git add'
* stop undoing gitattributes on uninitGravatar Joey Hess2011-06-22
| | | | v2 upgrade will undo them
* use git-annex branch for uuid.logGravatar Joey Hess2011-06-22
|
* add runBoolGravatar Joey Hess2011-06-22
|
* use git-annex branch for location logGravatar Joey Hess2011-06-22
|
* stop changing gitattributes on update from v1Gravatar Joey Hess2011-06-22
| | | | gitattributes changes are not needed, and will be removed in the v2 upgrade
* commit changes to git-annex branch on shutdownGravatar Joey Hess2011-06-22
|
* Branch handling improvementsGravatar Joey Hess2011-06-22
| | | | | | | | Support creating the branch. Unified branch state into a single data type. Only commit changes when the index has been changed.
* move LocationLog into Annex monad from IOGravatar Joey Hess2011-06-22
| | | | It will need to run in Annex so it can use Branch
* add a small cache of the most recently accessed item from the git-annex branchGravatar Joey Hess2011-06-22
| | | | | | | | | | | This will speed up typical cases like git-annex get, which currently has to read the location log once, then read it a second time in order to add a line to it. Since these reads now involve more than just reading in a file, it seemed good to add a cache layer. Only the most recent thing needs to be cached, because git-annex has good locality; it operates on one file at a time, and only cares about one item from the branch per file.
* rework core merge codeGravatar Joey Hess2011-06-22
| | | | More likely to be 100% correct now, I think.
* docs for v3Gravatar Joey Hess2011-06-21
|
* allow for union merges between a tree and the content in the indexGravatar Joey Hess2011-06-21
| | | | | | | | | | | | | | | This is needed for robust handling of the git-annex branch. Since changes are staged to its index as git-annex runs, and committed at the end, it's possible that git-annex is interrupted, and leaves a dirty index. When it next runs, it needs to be able to merge the git-annex branch as necessary, without losing the existing changes in the index. Note that this assumes that the git-annex branch is only modified by git-annex. Any changes to it will be lost when git-annex updates the branch. I don't see a good, inexpensive way to find changes in the git-annex branch that arn't in the index, and union merging the git-annex branch into the index every time would likewise be expensive.
* fixesGravatar Joey Hess2011-06-21
| | | | | | make commit commit to the right branch when getting content from the branch, update first
* export the commit function and generalizeGravatar Joey Hess2011-06-21
|
* Branch module completeGravatar Joey Hess2011-06-21
| | | | Refactored some code that it needs into GitRepo.
* refactorGravatar Joey Hess2011-06-21
|
* typos in commentsGravatar Joey Hess2011-06-21
|
* start v3Gravatar Joey Hess2011-06-21
|
* code to update a git-annex branchGravatar Joey Hess2011-06-21
| | | | | | | | | | | | | | | There is no suitable git hook to run code when pulling changes that might need to be merged into the git-annex branch. The post-merge hook is only run when changes are merged into HEAD, and it's possible, and indeed likely that many pulls will only have changes in git-annex, but not in HEAD, and not trigger it. So, git-annex will have to take care to update the branch before reading from it, to make sure it has merged in current info from remotes. Happily, this can be done quite inexpensively, just a git-show-ref to list branches, and a minimalized git-log to see if there are unmerged changes on the branches. To further speed up, it will be done only once per git-annex run, max.
* moved to libraryGravatar Joey Hess2011-06-21
|
* unlock: Made atomic.Gravatar Joey Hess2011-06-20
|
* move bug reportGravatar Joey Hess2011-06-20
|
* typoGravatar Joey Hess2011-06-20
|
* reorder git-union-merge paramsGravatar Joey Hess2011-06-20
|
* allow git-union-merge to write to any refGravatar Joey Hess2011-06-20
| | | | Not just refs/heads/* branches.
* sped up git-union-mergeGravatar Joey Hess2011-06-20
| | | | | | | | Avoided the slow git add, instead inject content directly into git and populate the index all in one pass. Now this runs on my large real-world repo in 10 seconds, which is acceptable. Also lots of code cleanups.
* add git-union-mergeGravatar Joey Hess2011-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | This is a new git subcommand, that does a generic union merge operation between two refs, storing the result in a branch. It operates efficiently without touching the working tree. It does need to write out a temporary index file, and may need to write out some other temp files as well. This could be useful for anything that stores data in a branch, and needs to merge changes into that branch without actually checking the branch out. Since conflict handling can't be done without a working copy, the merge type is always a union merge, which is fine for data stored in log format (as git-annex does), or in non-conflicting files (as pristine-tar does). This probably belongs in git proper, but it will live in git-annex for now. --- Plan is to move .git-annex/ to a git-annex branch, and use git-union-merge to handle merging changes when pulling from remotes. Some preliminary benchmarking using real .git-annex/ data indicates that it's quite fast, except for the "git add" call, which is as slow as "git add" tends to be with a big index.
* thoughtGravatar Joey Hess2011-06-20
|