summaryrefslogtreecommitdiff
path: root/Git
Commit message (Collapse)AuthorAge
* better streaming when cleaning up corrupt objectsGravatar Joey Hess2014-03-10
| | | | | A repo with a lot of objects will now stream them through, rather than buffering a list of them all in memory.
* Improve memory usage when git fsck finds a great many broken objects.Gravatar Joey Hess2014-03-10
| | | | | | | | | From 1.7 gb to 900 mb on 300 thousand unique reported shas. When shas are not unique, this streams much better than before, so won't buffer the full list before putting them into the Set and throwing away dups. And when fsck output includes ignorable lines, especially dangling object lines, they won't be buffered in memory at all.
* improved direct mode dir/file conflicted merge resultion, using tree graftingGravatar Joey Hess2014-03-04
|
* sync: Fix bug in direct mode that caused a file not checked into git to be ↵Gravatar Joey Hess2014-03-03
| | | | deleted when merging with a remote that added a file by the same name. (Thanks, jkt)
* pre-commit-annex hook script to automatically extract metadata from lots of ↵Gravatar Joey Hess2014-03-02
| | | | | | | | | | | | | | | | | | types of files Using the extract(1) program to do the heavy lifting. Decided to make git-annex run pre-commit-annex when committing. Since git-annex pre-commit also runs it, it'll be run when git commit is run too, via the pre-commit hook. This basically gives back the pre-commit hook that git-annex took away. The implementation avoids repeatedly looking for the hook script when the assistant is running and committing repeatedly; only checks if the hook is available once. To make the script simpler, made git-annex metadata -s field?=value only set a field when it's not already got a value. This commit was sponsored by bak.
* couple more warning fixesGravatar Joey Hess2014-02-25
|
* fix all remaining -Wall warnings on WindowsGravatar Joey Hess2014-02-25
|
* repair: Optimise unpacking of pack files, and avoid repeated error messages ↵Gravatar Joey Hess2014-02-24
| | | | about corrupt pack files.
* remove Read instance for RefGravatar Joey Hess2014-02-19
| | | | | | | | Removed instance, got it all to build using fromRef. (With a few things that really need to show something using a ref for debugging stubbed out.) Then added back Read instance, and made Logs.View use it for serialization. This changes the view log format.
* add git annex view commandGravatar Joey Hess2014-02-18
| | | | | | | | | | | | | | | | | | (And a vpop command, which is still a bit buggy.) Still need to do vadd and vrm, though this also adds their documentation. Currently not very happy with the view log data serialization. I had to lose the TDFA regexps temporarily, so I can have Read/Show instances of View. I expect the view log format will change in some incompatable way later, probably adding last known refs for the parent branch to View or something like that. Anyway, it basically works, although it's a bit slow looking up the metadata. The actual git branch construction is about as fast as it can be using the current git plumbing. This commit was sponsored by Peter Hogg.
* filter branches (incomplete)Gravatar Joey Hess2014-02-16
| | | | | | | | Promosing work toward metadata driven filter branches. A few methods to construct them are stubbed out; all the data types and pure code seems good. This commit was sponsored by Walter Somerville.
* unbreak the buildGravatar Joey Hess2014-02-12
|
* remove windows --git-dir unix style path hackGravatar Joey Hess2014-02-11
| | | | | | This is no longer necessary, at least with msysgit 1.8.5.2.msysgit.0. Its root cause may have been fixed by other recent git path fixes. It was causing the webapp to fail to make repos on other drives.
* Windows: Fix handling of absolute unix-style git repository paths.Gravatar Joey Hess2014-02-08
| | | | | | | | | | | | | Note that on Windows a remote with a path like /home/foo/bar is interpreted by git as being some screwy relative path (relative to what exactly seems ill-defined -- it seemed relative to C:\Program Files\Git\ in my tests!) So no attempt has been made to handle such a path sanely, just not to crash when encountering it. Note that "C:\\foo" </> "/home/foo/bar" yields /home/foo/bar even though that is not absolute! I don't know what to make of all this, except that I will be very happy when this crock of **** vanishes from the face of the earth.
* remove workaroundGravatar Joey Hess2014-02-08
| | | | | This was needed when absNormPath was not being used on Windows, since path normalization includes removing ./
* --in can now refer to files that were located in a repository at some past ↵Gravatar Joey Hess2014-02-06
| | | | date. For example, --in="here@{yesterday}"
* assistant: Run the periodic git gc in batch mode.Gravatar Joey Hess2014-01-22
|
* repair: Check git version at run time.Gravatar Joey Hess2014-01-21
|
* repair: Fix bug in packed refs file exploding code that caused a .gitrefs ↵Gravatar Joey Hess2014-01-15
| | | | directory to be created instead of .git/refs
* repair: Support old git versions from before git fsck --no-dangling was ↵Gravatar Joey Hess2014-01-13
| | | | implemented.
* Avoid looping if long-running git cat-file or git hash-object crashes and ↵Gravatar Joey Hess2014-01-01
| | | | keeps crashing when restarted.
* Windows: Fix bug in direct mode merge code that could cause files in ↵Gravatar Joey Hess2013-12-31
| | | | subdirectories to go missing.
* Another round of s/amoung/among/Gravatar Richard Hartmann2013-12-19
|
* assistant: Fix OSX-specific bug that caused the startup scan to try to ↵Gravatar Joey Hess2013-12-18
| | | | follow symlinks to other directories, and add their contents to the annex.
* status: Ignore new files that are gitignored.Gravatar Joey Hess2013-12-12
|
* repair: Remove damaged git-annex sync branches.Gravatar Joey Hess2013-12-10
|
* updateGravatar Joey Hess2013-12-10
|
* accidentially committed wrong version of fileGravatar Joey Hess2013-12-10
|
* Improve repair of git-annex index file.Gravatar Joey Hess2013-12-10
| | | | | | | | | | Fixes a test case I received where a corrupted repo was repaired, but the git-annex branch was not. The root of the problem was that the MissingObject returned by the repair code was not necessarily a complete set of all objects that might have been deleted during the repair. So, stop trying to return that at all, and instead make the index file checking code explicitly verify that each object the index uses is present.
* work around msysgit very strange behavior on ./ or .\ at start of pathGravatar Joey Hess2013-12-04
| | | | | Seems that verify_path() rejects such a path on Windows, but I cannot see why. Git bug?
* assistant: Batch jobs are now run with ionice and nocache, when those ↵Gravatar Joey Hess2013-12-01
| | | | commands are available.
* Avoid using git commit in direct mode, since in some situations it will read ↵Gravatar Joey Hess2013-12-01
| | | | | | | | | | | | the full contents of files in the tree. The assistant's commit code also always avoids git commit, for simplicity. Indirect mode sync still does a git commit -a to catch unstaged changes. Note that this means that direct mode sync no longer runs the pre-commit hook or any other hooks git commit might call. The git annex pre-commit hook action for direct mode is however explicitly run. (The assistant already ran git commit with hooks disabled, so no change there.)
* merge improved fsck types from git-repair and some associated changesGravatar Joey Hess2013-11-30
|
* Fix bug that broke switching between local repositories in the webapp when ↵Gravatar Joey Hess2013-11-22
| | | | | | | they use the new guarded direct mode. git treats eg ~/annex as a bare git repository located in ~/.annex/.git if ~/annex/.git/config has core.bare=true.
* make runRepairOf run preRepairGravatar Joey Hess2013-11-21
| | | | | This may be a little late, since a fsck has already been done, but it can't hurt.
* merge from git-repairGravatar Joey Hess2013-11-21
|
* merge from git-repairGravatar Joey Hess2013-11-21
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* merge from git-repairGravatar Joey Hess2013-11-20
|
* fix repair failure that occurred when index was corrupted, and other objects tooGravatar Joey Hess2013-11-19
| | | | | In this case, the index problem prevented fsck from finding the other problems.
* merge with git-repairGravatar Joey Hess2013-11-19
|
* moving git-repair to its own packageGravatar Joey Hess2013-11-18
|
* better handling of missing index fileGravatar Joey Hess2013-11-13
|
* assistant: Notice on startup when the index file is corrupt, and auto-repair.Gravatar Joey Hess2013-11-13
|
* repair: Handle case where index file is corrupt, but all objects are ok.Gravatar Joey Hess2013-11-13
|
* webapp: Improve UI around remote that have no annex.uuid set, either because ↵Gravatar Joey Hess2013-11-07
| | | | | | | | setup of them is incomplete, or because the remote git repository is not a git-annex repository. Complicated by such repositories potentially being repos that should have an annex.uuid, but it failed to be gotten, perhaps due to the past ssh repo setup bugs. This is handled now by an Upgrade Repository button.
* add new status commandGravatar Joey Hess2013-11-07
| | | | | | | | | | | | | | | This works for both direct and indirect mode. It may need some performance tuning. Note that unlike git status, it only shows the status of the work tree, not the status of the index. So only one status letter, not two .. and since files that have been added and not yet committed do not differ between the work tree and the index, they are not shown. Might want to add display of the index vs the last commit eventually. This commit was sponsored by an unknown bitcoin contributor, whose contribution as been going up lately! ;)
* work around lack of receive.denyCurrentBranch in direct modeGravatar Joey Hess2013-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that direct mode sets core.bare=true, git's normal prohibition about pushing into the currently checked out branch doesn't work. A simple fix for this would be an update hook which blocks the pushes.. but git hooks must be executable, and git-annex needs to be usable on eg, FAT, which lacks x bits. Instead, enabling direct mode switches the branch (eg master) to a special purpose branch (eg annex/direct/master). This branch is not pushed when syncing; instead any changes that git annex sync commits get written to master, and it's pushed (along with synced/master) to the remote. Note that initialization has been changed to always call setDirect, even if it's just setDirect False for indirect mode. This is needed because if the user has just cloned a direct mode repo, that nothing has synced with before, it may have no master branch, and only a annex/direct/master. Resulting in that branch being checked out locally too. Calling setDirect False for indirect mode moves back out of this branch, to a new master branch, and ensures that a manual "git push" doesn't push changes directly to the annex/direct/master of the remote. (It's possible that the user makes a commit w/o using git-annex and pushes it, but nothing I can do about that really.) This commit was sponsored by Jonathan Harrington.