summaryrefslogtreecommitdiff
path: root/Git
Commit message (Collapse)AuthorAge
* typoGravatar Joey Hess2012-07-17
|
* avoid --no-edit with older git versionsGravatar Joey Hess2012-07-17
|
* sync: Automatically resolves merge conflicts.Gravatar Joey Hess2012-06-27
| | | | untested, but it compiles :)
* properly handle deleted files when processing ls-files --unmergedGravatar Joey Hess2012-06-27
|
* add ls-files --unmerged supportGravatar Joey Hess2012-06-27
|
* git-config fileEncodingGravatar Joey Hess2012-06-26
| | | | | | | | | | | | Accept arbitrarily encoded repository filepaths etc when reading git config output. This fixes support for remotes with unusual characters in their names. For example, a remote with a url of /tmp/çüş was previously skipped, because the filename wasn't encoded right so it didn't think it was available. And when setting the annex-uuid of a remote named "çüş", it used to add it under a mis-encoded form of the remote's name. Both these cases now work ok in my testing.
* Got rid of the last place that did utf8 decoding.Gravatar Joey Hess2012-06-26
| | | | | Probably fixes bugs/git-annex:_Cannot_decode_byte___39____92__xfc__39__/ although I don't know how to reproduce that bug.
* sync: Avoid recent git's interactive merge.Gravatar Joey Hess2012-06-23
|
* avoid ByteString.Char8 where not neededGravatar Joey Hess2012-06-20
| | | | | Its truncation behavior is a red flag, so avoid using it in these places where only raw ByteStrings are used, without looking at the data inside.
* optimisation and memory leak fixGravatar Joey Hess2012-06-12
|
* crazy optimisationGravatar Joey Hess2012-06-10
| | | | Crazy like a fox..
* queue size fixGravatar Joey Hess2012-06-10
| | | | | Increase queue size for update-index actions, because otherwise they'll never be flushed.
* stage deletions directly using update-indexGravatar Joey Hess2012-06-10
| | | | no need to run git-rm separately
* force thunk for precalculated valueGravatar Joey Hess2012-06-10
|
* refactor and function name cleanupGravatar Joey Hess2012-06-08
| | | | (oops, I had a calcMerge and a calc_merge!)
* make watch use the queueGravatar Joey Hess2012-06-07
| | | | | May not work. Certianly needs to flush the queue from time to time when only symlink changes are being made.
* extend Git.Queue to be able to queue more than simple git commandsGravatar Joey Hess2012-06-07
| | | | | | While I was in there, I noticed and fixed a bug in the queue size calculations. It was never encountered only because Queue.add was only ever run with 1 file in the list.
* add support for staging other types of blobs, like symlinks, into the indexGravatar Joey Hess2012-06-06
| | | | | Also added a utility TopFilePath type, which could stand to be used more widely.
* Merge branch 'master' into watchGravatar Joey Hess2012-06-06
|\
| * move hashObject to HashObject library and generalize it to support all git ↵Gravatar Joey Hess2012-06-06
| | | | | | | | object types
* | Merge branch 'master' into watchGravatar Joey Hess2012-06-06
|\|
| * factor out generic update-index code from unionmerge codeGravatar Joey Hess2012-06-06
| |
* | flush the git queue when a new type of action is being added to itGravatar Joey Hess2012-06-04
|/ | | | | | | | This allows the queue to be used in a single process for multiple possibly conflicting commands, like add and rm, without running them out of order. This assumes that running the same git subcommand with different parameters cannot itself conflict.
* more worktree improvementsGravatar Joey Hess2012-05-19
| | | | | | | | | Avoid more expensive code path when no core.worktree is configured. Don't change worktree when reading config if one is already set. This could happen if GIT_CORE_WORKTREE is set, and the repo also has core.worktree, and the config is reread. Now GIT_CORE_WORKTREE will prevail.
* avoid chdir when already inside worktreeGravatar Joey Hess2012-05-19
|
* test suite saved my baconGravatar Joey Hess2012-05-19
| | | | git config reading memoization shouldn't be used when changing config
* make GIT_DIR, GIT_WORK_TREE absoluteGravatar Joey Hess2012-05-18
| | | | | GIT_DIR is set to something relative, like ".git" in the pre-commit hook. But internally all the directories are assumed to be absolute.
* Add support for core.worktree, and fix support for GIT_WORK_TREE and GIT_DIR.Gravatar Joey Hess2012-05-18
| | | | | | | The environment needs to override git-config. Changed when git config is read, and avoid rereading it once it's been read. chdir for both worktree settings.
* Clean up handling of git directory and git worktree.Gravatar Joey Hess2012-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Baked into the code was an assumption that a repository's git directory could be determined by adding ".git" to its work tree (or nothing for bare repos). That fails when core.worktree, or GIT_DIR and GIT_WORK_TREE are used to separate the two. This was attacked at the type level, by storing the gitdir and worktree separately, so Nothing for the worktree means a bare repo. A complication arose because we don't learn where a repository is bare until its configuration is read. So another Location type handles repositories that have not had their config read yet. I am not entirely happy with this being a Location type, rather than representing them entirely separate from the Git type. The new code is not worse than the old, but better types could enforce more safety. Added support for core.worktree. Overriding it with -c isn't supported because it's not really clear what to do if a git repo's config is read, is not bare, and is then overridden to bare. What is the right git directory in this case? I will worry about this if/when someone has a use case for overriding core.worktree with -c. (See Git.Config.updateLocation) Also removed and renamed some functions like gitDir and workTree that misused git's terminology. One minor regression is known: git annex add in a bare repository does not print a nice error message, but runs git ls-files in a way that fails earlier with a less nice error message. This is because before --work-tree was always passed to git commands, even in a bare repo, while now it's not.
* Add annex.httpheaders and annex.httpheader-command config settingsGravatar Joey Hess2012-04-22
| | | | | | Allow custom headers to be sent with all HTTP requests. (Requested by the Internet Archive)
* noopGravatar Joey Hess2012-04-21
|
* Support git's core.sharedRepository configurationGravatar Joey Hess2012-04-21
| | | | | | This is incomplete, it does not honor it yet for hash directories and other annex bookkeeping files. Some of that is not needed for a bare repo; some of it may be.
* compute distance in correct directionGravatar Joey Hess2012-04-14
|
* autocorrectionGravatar Joey Hess2012-04-12
| | | | | | | git-annex (but not git-annex-shell) supports the git help.autocorrect configuration setting, doing fuzzy matching using the restricted Damerau-Levenshtein edit distance, just as git does. This adds a build dependency on the haskell edit-distance library.
* bup: Properly handle key names with spaces or other things that are not ↵Gravatar Joey Hess2012-04-11
| | | | | | | | legal git refs. Continue using the key name as bup ref name, to preserve backwards compatability, unless it is an illegal git ref. In that case, use a sha256 of the key name instead.
* nicer style; also empty refs are implicitly not allowedGravatar Joey Hess2012-04-11
|
* added a git ref legality checkerGravatar Joey Hess2012-04-11
| | | | git-check-ref-format is .. wow. Good design on one level, but what a mess.
* removed another 10 lines via ifMGravatar Joey Hess2012-03-16
|
* fix filename encoding for git cat-fileGravatar Joey Hess2012-02-26
| | | | | | | | | | | The filename sent to git cat-file needs to be sent on a File encoded handle. Also set the read handle to use the File encoding, so that any error message mentioning the filename is received properly. The actual file content is read using Data.ByteString.Char8, which will ignore the read handle's encoding, so this won't change that. (Whether that is entirely correct remains to be seen.)
* cleanupGravatar Joey Hess2012-02-21
|
* refactorGravatar Joey Hess2012-02-20
|
* reorder prams and put -- after atrributes, for compatability with old gitGravatar Joey Hess2012-02-15
| | | | (cherry picked from commit c8ec0e233e9d47a7e69b3de2952099c221c79ac1)
* Added a annex.queuesize settingGravatar Joey Hess2012-02-15
| | | | | | | | | | useful when adding hundreds of thousands of files on a system with plenty of memory. git add gets quite slow in such a large repository, so if the system has more than the ~32 mb of memory the queue can use by default, it's a useful optimisation to increase the queue size, in order to decrease the number of times git add is run.
* fix memory leak when staging the journalGravatar Joey Hess2012-02-14
| | | | | | The list of files had to be retained until the end so it could be deleted. Also, a list of update-index lines was generated and only then fed into it. Now everything streams in constant space.
* Fixed a memory leak due to excessive strictness when committing journal files.Gravatar Joey Hess2012-02-14
| | | | | | When hashing the files, the entire list of shas was read strictly. That was entirely unnecessary, since there's a cleanup action run after they're consumed.
* set fileEncoding on CheckAttr handlesGravatar Joey Hess2012-02-14
| | | | Seemed to work without it, but this is correct.
* fix LsFiles.typeChanged pathsGravatar Joey Hess2012-02-14
| | | | | | Passing absolute paths to Command.Add used to work, but after recent changes doesn't. All LsFiles should use relative paths anyway, so fix it there.
* rework git check-attr interfaceGravatar Joey Hess2012-02-13
| | | | | | | | | | | | | | | Now gitattributes are looked up, efficiently, in only the places that really need them, using the same approach used for cat-file. The old CheckAttr code seemed very fragile, in the way it streamed files through git check-attr. I actually found that cad8824852aa0623dc41eac02a9e2bae47d88ec4 was still deadlocking with ghc 7.4, at the end of adding a lot of files. This should fix that problem, and avoid future ones. The best part is that this removes withAttrFilesInGit and withNumCopies, which were complicated Seek methods, as well as simplfying the types for several other Seek methods that had a Backend tupled in.
* another place hGetBoth was used without a writer threadGravatar Joey Hess2012-02-13
|
* thinkoGravatar Joey Hess2012-02-13
| | | | | I removed the now unnecessary forkProcess, but forgot to change back to pipeBoth, so there was no writer thread.