aboutsummaryrefslogtreecommitdiff
path: root/Git
Commit message (Collapse)AuthorAge
...
* more windows path fixesGravatar Joey Hess2016-05-04
| | | | | beneathSubTree can be called with both windows-style and git-style paths, so needs to normalize to windows-style.
* avoid hardcoded slashes; broke on windowsGravatar Joey Hess2016-05-03
|
* --allow-unrelated-histories will be in git 2.9.0, not 2.8.2Gravatar Joey Hess2016-04-27
| | | | Also, I had the logic backwards in the version comparison.
* use --allow-unrelated-histories for nowGravatar Joey Hess2016-04-22
| | | | | | | | I'd prefer to use the env var, but let's use what git currently supports. Revert this when the env var gets supported. Note that the version checking assumes git 2.8.2 will get support for the switch.
* assistant: Deal with upcoming git's refusal to merge unrelated histories by ↵Gravatar Joey Hess2016-04-22
| | | | | | | | | | | | | default git 2.8.1 (or perhaps 2.9.0) is going to prevent git merge from merging in unrelated branches. Since the webapp's pairing etc features often combine together repositories with unrelated histories, work around this behavior change by setting GIT_MERGE_ALLOW_UNRELATED_HISTORIES when the assistant merges. Note though that this is not done for git annex sync's merges, so it will follow git's default or configured behavior.
* fix build with ghc 7.6.3Gravatar Joey Hess2016-04-08
|
* avoid withWorkTreeRelated affecting annex symlink calculationGravatar Joey Hess2016-04-08
|
* run out of tree merge with --no-ffGravatar Joey Hess2016-04-06
| | | | | | This is how direct mode does it too, and somehow, for reasons that currently escape me, this makes git merge not care if it's run with an empty work tree.
* sync: Show output of git commit.Gravatar Joey Hess2016-04-05
| | | | | | Rationalle: User might have hook scripts whose output they want to see. Also, git commit output may tell the user they forgot to add a file. The output is not too ugly when there's nothing to commit.
* Upgrading a direct mode repository to v6 has changed to enter an adjusted ↵Gravatar Joey Hess2016-04-04
| | | | | | | | unlocked branch. This makes the direct mode to v6 upgrade able to be performed in one clone of a repository without affecting other clones, which can continue using v5 and direct mode.
* fix parsing of commit with no parentsGravatar Joey Hess2016-03-31
|
* add reflog messagesGravatar Joey Hess2016-03-31
|
* Merge branch 'master' into adjustedbranchGravatar Joey Hess2016-03-29
|\
| * Sped up git-annex merge by using git hash-object --batch.Gravatar Joey Hess2016-03-14
| | | | | | | | | | | | | | This does mean that it has to write out temp files containing updated objects for the merge. So may use more disk space, and disk IO, but that should generally win out over needing to launch N separate git hash-object processes.
* | grafting new items into existing treeGravatar Joey Hess2016-03-11
| |
* | refactorGravatar Joey Hess2016-03-11
| |
* | fixmeGravatar Joey Hess2016-03-11
| |
* | fix deletion of files in adjustTreeGravatar Joey Hess2016-03-11
| |
* | improve propigation of commits from adjusted branchesGravatar Joey Hess2016-03-11
| | | | | | | | | | | | | | | | | | | | | | Only reverse adjust the changes in the commit, which means that adjustments do not need to be generally cleanly reversable. For example, an adjustment can unlock all locked files, but does not need to worry about files that were originally unlocked when reversing, because it will only ever be run on files that have been changed. So, it's ok if it locks all files when reversed, or even leaves all files as-is when reversed.
* | indentGravatar Joey Hess2016-03-11
| |
* | fix warningGravatar Joey Hess2016-03-11
| |
* | allow adding new items via adjustTreeGravatar Joey Hess2016-03-11
| |
* | add commitDiff, and clean up partial functionGravatar Joey Hess2016-03-11
| |
* | extract commit parent(s)Gravatar Joey Hess2016-03-11
| |
* | working toward adjusted commit propigationGravatar Joey Hess2016-03-03
| |
* | replicate git's message about an existing lock fileGravatar Joey Hess2016-03-03
| |
* | support for git-style lock files, on unix and windowsGravatar Joey Hess2016-03-03
| |
* | make sync aware of adjusted branchesGravatar Joey Hess2016-02-29
|/ | | | | | | | | | So, it will pull and push the original branch, not the adjusted one. And, for merging, it will use updateAdjustedBranch (not implemented yet). Note that remaining uses of Git.Branch.current need to be checked too; for things that should act on the original branch, and not the adjusted branch.
* 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.