summaryrefslogtreecommitdiff
path: root/Git
Commit message (Collapse)AuthorAge
* fix android buildGravatar Joey Hess2016-02-29
|
* forgot to use sfileGravatar Joey Hess2016-02-26
|
* add fromBlobTypeGravatar Joey Hess2016-02-25
|
* factor out commitTreeGravatar Joey Hess2016-02-25
|
* add catCommit, with commit object parserGravatar Joey Hess2016-02-25
|
* refactorGravatar Joey Hess2016-02-25
|
* parse strictlyGravatar Joey Hess2016-02-23
| | | | | This reduces memory use, because it avoids thunks that buffer parts of the ls-tree output that are not needed.
* better encapsulationGravatar Joey Hess2016-02-23
|
* few strictness improvemnetsGravatar Joey Hess2016-02-23
|
* refactorGravatar Joey Hess2016-02-23
|
* add adjustTree (low-level) interface that avoids buffering much in memoryGravatar Joey Hess2016-02-23
| | | | | Using getTree and recordTree in my big repo takes 594 mb ram. Using adjustTree takes 73 mb.
* remove support for network older than 2.4Gravatar Joey Hess2016-02-23
| | | | debian stable has 2.4
* no streamingGravatar Joey Hess2016-02-23
| | | | | | | | | | | | | | | | | | | | extractTree has to parse the whole input list in order to generate a tree, so convert interface to non-streaming. Some quick memory benchmarks in a repo with 60k files don't look too bad despite not streaming. To stream, without building up a whole tree object, one way would be a new interface: adjustTree :: MonadIO m :: (TreeItem -> m (Maybe TreeItem)) -> Ref -> Repo -> m Sha This would only need to buffer tree objects from the current one down to the root, in order to update trees when a TreeItem is changed. But, while it supports changing items in the tree, and removing items, it does not support adding new items, or moving items from one directory to another.
* use getShaGravatar Joey Hess2016-02-23
|
* minor improvementsGravatar Joey Hess2016-02-23
|
* add mktree interfaceGravatar Joey Hess2016-02-23
|
* fix handling of unspecified attributes (particularly for annex.largefiles)Gravatar Joey Hess2016-02-05
|
* annex.largefiles can be configured in .gitattributes tooGravatar Joey Hess2016-02-02
| | | | | This is particulary useful for v6 repositories, since the .gitattributes configuration will apply in all clones of the repository.
* immediate queue flushing when annex.queuesize=1Gravatar Joey Hess2016-01-13
| | | | | | | | | Previously, it only flushed when the queue got larger than 1. Also, make the queue auto-flush when items are added, rather than needing to be flushed as a separate step. This simplifies the code and make it more efficient too, as it avoids needing to read the queue out of the state to check if it should be flushed.
* optimiseGravatar Joey Hess2016-01-06
| | | | | | | | | | | | d1ce927d95fe7c331cbff3317797a60aa288738b put a cat-file into the fast bloomfilter generation path. Instead, add another bloom filter which diffs from the work tree to the index. Also, pull the sha of the changed object out of the diffs, and cat that object directly, rather than indirecting through the filename. Finally, removed some hacks that are unncessary thanks to the worktree to index diff.
* clarify absPathFromGravatar Joey Hess2016-01-05
| | | | | | | | | | | | The repo path is typically relative, not absolute, so providing it to absPathFrom doesn't yield an absolute path. This is not a bug, just unclear documentation. Indeed, there seem to be no reason to simplifyPath here, which absPathFrom does, so instead just combine the repo path and the TopFilePath. Also, removed an export of the TopFilePath constructor; asTopFilePath is provided to construct one as-is.
* use TopFilePath for associated filesGravatar Joey Hess2016-01-05
| | | | | | | | | | | | | | | Fixes several bugs with updates of pointer files. When eg, running git annex drop --from localremote it was updating the pointer file in the local repository, not the remote. Also, fixes drop ../foo when run in a subdir, and probably lots of other problems. Test suite drops from ~30 to 11 failures now. TopFilePath is used to force thinking about what the filepath is relative to. The data stored in the sqlite db is still just a plain string, and TopFilePath is a newtype, so there's no overhead involved in using it in DataBase.Keys.
* improve data typeGravatar Joey Hess2016-01-01
|
* wait for git lstree to exitGravatar Joey Hess2016-01-01
|
* remove old TODOGravatar Joey Hess2016-01-01
|
* fix use of hifalutin terminologyGravatar Joey Hess2015-11-16
|
* work around git check-ignore --batch bad exit status bug, and bring back ↵Gravatar Joey Hess2015-11-06
| | | | import -J
* merge git command queue when joining with concurrent threadGravatar Joey Hess2015-11-05
|
* Catch up with current git behavior when both repo and repo.git exist; it ↵Gravatar Joey Hess2015-10-26
| | | | seems it now prefers repo in this case, although historically it may have preferred repo.git.
* fix various build warnings, mostly on WindowsGravatar Joey Hess2015-10-13
| | | | And some when S3 is disabled
* status: Show added but not yet committed files.Gravatar Joey Hess2015-09-22
| | | | | | | | | | | Seems easy, but git ls-files can't list the right subset of files. So, I wrote a whole new parser for git status output, and converted the status command to use that. There are a few other small behavior changes. The order changed. Unlocked files show as T. In indirect mode, deleted files were not shown before, and that's fixed. Regular files checked directly into git and modified were not shown before, and are now.
* Switched to using git for Windows, rather than msysgit.Gravatar Joey Hess2015-09-10
| | | | | | | | | | | | | | | | | | Using msysgit with git-annex is no longer supported. At the same time, I'm updating the rsync.exe in my downloads repository with the one from msys2. Note that rsync is currently still being ldded and installed in Git/cmd/ like the other cygwin programs. The ldd fails and this failure is ignored. It would be better to special case it to go in Git/usr/bin/, so that the user can't run rsync in a dos prompt window, which doesn't work, as it needs additional libs. However, as far as git-annex running rsync running ssh, it works ok in this location. Removed the ssh.cmd and ssh-keygen.cmd; these are not needed with git for windows. Keeping them would let ssh be run manually from a dos prompt window, but that's not really a goal.
* avoid nul-truncationGravatar Joey Hess2015-08-11
| | | | | | | This might be a little slower, but it's safer, in the event that a union-merged file contains a NUL. AFAIK, no files in the git-annex branch do.
* Only look at reflogs for relevant branches, not for git-annex branchesGravatar Joey Hess2015-07-07
| | | | This speeds it up quite a bit.. May still be too slow in large repos.
* unused: --used-refspec can now be configured to look at refs in the reflog. ↵Gravatar Joey Hess2015-07-07
| | | | | | This provides a way to not consider old versions of files to be unused after they have reached a specified age, when the old refs in the reflog expire. May be slow.
* Support git's undocumented core.sharedRepository=2 value, which is ↵Gravatar Joey Hess2015-07-06
| | | | equivilant to "world".
* refactor ls-tree paramsGravatar Joey Hess2015-07-06
| | | | All in one place to avoid bugs like 2ea34c47dd9819111f3cbaa2ce848581d286c05c
* remove Params constructor from Utility.SafeCommandGravatar Joey Hess2015-06-01
| | | | | | | | | | | | | | | | | | This removes a bit of complexity, and should make things faster (avoids tokenizing Params string), and probably involve less garbage collection. In a few places, it was useful to use Params to avoid needing a list, but that is easily avoided. Problems noticed while doing this conversion: * Some uses of Params "oneword" which was entirely unnecessary overhead. * A few places that built up a list of parameters with ++ and then used Params to split it! Test suite passes.
* couple of AMP warnings I missed beforeGravatar Joey Hess2015-05-10
|
* more {-# OPTIONS_GHC -fno-warn-tabs #-} ... Forcing people who have what is ↵Gravatar Joey Hess2015-05-10
| | | | merely a difference of opinion to you to do this is a bit of an asshole move. Just saying.
* descGravatar Joey Hess2015-04-19
|
* removed all uses of undefined from code baseGravatar Joey Hess2015-04-19
| | | | It's a code smell, can lead to hard to diagnose error messages.
* spotted a few more places where diff-tree needed --Gravatar Joey Hess2015-04-09
| | | | | | None of these are very likely at all to ever be ambiguous, since tree refs almost never have symbolic names and the sha is very unlikely to be in the work tree.. But, let's get it right!
* fix union merge to call diff-index with -- after the refGravatar Joey Hess2015-04-09
| | | | | Otherwise, if there's a file in the repo with a name matching the ref, git could get confused and the merge not work.
* This fixes a bug in the assistant introduced by the literal pathspec changes ↵Gravatar Joey Hess2015-04-09
| | | | | | | | | | | in version 5.20150406. git-checkignore refuses to work if any pathspec options are set. Urgh. I audited the rest of git, and no other commands used by git-annex have such limitations. Indeed, AFAICS, *all* other commands support --literal-pathspecs. So, worked around this where git-checkignore is called.
* use --literal-pathspecs globally, as a better way to avoid globbingGravatar Joey Hess2015-03-30
| | | | | | | | This might be overkill; I only know I need it in ls-files, but other git commands can also do their own globbing, it turns out, and I am pretty sure I never want them too when git-annex is using them as plumbing. Test suite still passes and it looks ok.
* workaround git ls-files bug in handling slash-escaped wildcardsGravatar Joey Hess2015-03-30
| | | | | | | | | | | There's no good solution for git-annex here; I can't escape or un-escape and avoid breaking in some cases, so I've chosen the combo least likely to result in breakage. Git really needs to fix its behavior here. The only other thing git-annex could do is treat this as a feature, and don't try to escape at all. Ugh.
* Prevent git-ls-files from double-expanding wildcards when an unexpanded ↵Gravatar Joey Hess2015-03-27
| | | | | | | | | | wildcard is passed to a git-annex command like add or find. Note that previously, `git annex find *.jpg` would find eg, foo/bar.jpg. That was never intended or documented behavior, so I'm going to change it. But this is potentially a behavior change if someone discovered that behavior and relied on it despite it being accidental. Oh well.. can't make an omlette w/o breaking some eggs.
* promote forum request to todo item so it is not lostGravatar Joey Hess2015-03-27
|
* Improve error message when --in @date is used and there is no reflog for the ↵Gravatar Joey Hess2015-03-26
| | | | git-annex branch.