summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-06-08Make "git commit" work correctly in the presense of a manual mergeLinus Torvalds
This has gotten only very light testing, but something like this is clearly necessary and did the right thing for the one case I threw at it.
2005-06-08cvs-migration: add more of a header to the "annotate" discussionLinus Torvalds
2005-06-08[PATCH] Miniscule correction of diff-format.txtChristian Meder
Add missing "space" element to the description of the diff-format. Signed-off-by: Christian Meder <chris@absolutegiganten.org> Acked-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08[PATCH] Anal retentive 'const unsigned char *sha1'Jason McMullan
Make 'sha1' parameters const where possible Signed-off-by: Jason McMullan <jason.mcmullan@timesys.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08[PATCH] git-diff-cache: handle pathspec beginning with a dashJonas Fonseca
Parse everything after '--' as tree name or pathspec. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08Leave merge failures in the filesystemLinus Torvalds
This changes how we handle merges: if a automated merge fails, we will leave the index as a clean entry pointing to the original branch, and leave the actual file _dirty_ the way the "merge" program left it. You can then just do "git-diff-files -p" to see what the merge conflicts did, fix them up, and commit the end result. NOTE NOTE NOTE! Do _not_ use "git commit" to commit such a merge. It won't set the parents right. I'll need to fix that. In the meantime, you'd need to merge using git-commit-tree $(git-write) -p HEAD -p MERGE_HEAD or something like that by hand.
2005-06-08Fix SIGSEGV on unmerged files in git-diff-files -pLinus Torvalds
NULL is not considered a VALID pathspec.
2005-06-08[PATCH] Tests: read-tree -m test updates.Junio C Hamano
This updates t1000 (basic 3-way merge test) to check the merge results for both successful cases (earlier one checked the result for only one of them). Also fixes typos in t1002 that broke '&&' chain, potentially missing a test failure before the chain got broken. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08Make default merge messages denser.Linus Torvalds
In particular, make them readable on one line since that's what all the tools like git-shortlog and gitk end up showing.
2005-06-08[PATCH] three --merge-order bug fixesJon Seymour
This patch fixes three bugs in --merge-order support * mark_ancestors_uninteresting was unnecessarily exponential which caused a problem when a commit with no parents was merged near the head of something like the linux kernel * removed a spurious statement from find_base which wasn't apparently causing problems now, but wasn't correct either. * removed an unnecessarily strict check from find_base_for_list that causes a problem if git-rev-list commit ^parent-of-commit is specified. * added some unit tests which were accidentally omitted from original merge-order patch The fix to mark_ancestors_uninteresting isn't an optimal fix - a full graph scan will still be performed in this case even though it is not strictly required. However, a full graph scan is linear and still no worse than git-rev-list HEAD which runs in less than 2 seconds on a warm cache. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08[PATCH] git-cvs2git: create tagsSven Verdoolaege
cvsps seems to put a space after the tag name, so we remove it first.
2005-06-08git-apply: creatign empty files is nonfatalLinus Torvalds
(but it will result in a warning)
2005-06-07Talk about "git cvsimport" in the cvs migration docsLinus Torvalds
We should add a lot more information about how you copy repositories, pulling and pushing, merging etc. Oh, well. I'm not exactly known for my documentation skills. Maybe somebody else will help me..
2005-06-07[PATCH] Documentation: describe diff tweaking (fix).Junio C Hamano
I cannot count ;-) Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-06-07[PATCH] Start cvs-migration documentationJunio C Hamano
This does a section to talk about "cvs annotate". Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07git-read-tree: -u without -m is meaningless. Don't allow it.Linus Torvalds
Also, documetn the "-u" in the usage string.
2005-06-07git-read-tree: make one-way merge also honor the "update" flagLinus Torvalds
It didn't set CE_UPDATE before, so "-u" was a no-op.
2005-06-07[PATCH] read-tree: update documentation for 3-way merge.Junio C Hamano
This explains the new merge world order that formally assigns specific meaning to each of three tree-ish command line arguments. It also mentions -u option Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07Add CVS import scripts and programsLinus Torvalds
This gets the "cvs2git" program from the old git-tools archive, and adds a nice script around it that makes it much easier to use. With this, you should be able to import a CVS archive using just a simple git cvsimport <cvsroot> <module> and you're done. At least it worked for my one single test. NOTE!! This may need tweaking. It currently expects (and verifies) that cvsps version 2.1 is installed, but you can't actually set any of the cvsps parameters, like the time fuzz.
2005-06-07git-ssh-push/pull: usability improvementsLinus Torvalds
Allow traditional ssh path specifiers (host:path), and let the user override the command name on the other end. With this, I can push to kernel.org with this script export GIT_SSH_PULL=/home/torvalds/bin/git-ssh-pull git-ssh-push -a -v -w heads/master heads/master master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git which while not pretty is at least workable.
2005-06-07[PATCH] Use ntohs instead of htons to convert ce_flags to host byte orderTimo Hirvonen
Use ntohs instead of htons to convert ce_flags to host byte order Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07[PATCH] read-tree: save more user hassles during fast-forward.Junio C Hamano
This implements the "never lose the current cache information or the work tree state, but favor a successful merge over merge failure" principle in the fast-forward two-tree merge operation. It comes with a set of tests to cover all the cases described in the case matrix found in the new documentation. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07[PATCH] Document git-ssh-pull and git-ssh-pushDaniel Barkalow
This fixes the documentation for git-ssh-push, as called by users (if you run git-ssh-pull or git-ssh-push on one machine, the other runs on the other machine, and they transfer data in the specified direction). This also adds documentation for the -w option and for using filenames for the commit-id (which does what you'd want: uses the source side's value, not the value already on the target, even if you're running it on the target). It also credits me with the programs and the documentation for git-ssh-push. Someone who knows asciidoc should make sure I didn't mess up the formatting. I'm only sure of the ascii part. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07git-resolve-script: stop when the automated merge failsLinus Torvalds
No point in doing a tree write that will just throw confusing messages on the screen.
2005-06-07Make fetch/pull scripts terminate cleanly on errorsLinus Torvalds
Don't continue with a merge if the fetch failed.
2005-06-07git-resolve-script: don't wait for three seconds any moreLinus Torvalds
We used to overwrite peoples dirty state. We don't any more. So don't print the scary message and don't delay, just do the update already.
2005-06-07[PATCH] -w support for git-ssh-pull/pushDaniel Barkalow
This adds support for -w to git-ssh-pull and git-ssh-push to make receiving side write the commit that was transferred to a reference file. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07[PATCH] Generic support for pulling refsDaniel Barkalow
This adds support to pull.c for requesting a reference and writing it to a file. All of the git-*-pull programs get stubs for now. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07[PATCH] rsh.c environment variableDaniel Barkalow
rsh.c used to set the environment variable for the object database when invoking the remote command. Now that there is a GIT_DIR variable, use that instead. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-07[PATCH] Operations on refsDaniel Barkalow
This patch adds code to read a hash out of a specified file under {GIT_DIR}/refs/, and to write such files atomically and optionally with an compare and lock. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06git-read-tree: some "final" cleanupsLinus Torvalds
Looking good, but hey, it's not like I even have a real testcase for any of this. But unlike the mess that this was yerstday, today read-cache is pretty readable and understandable. Which is always a good sign.
2005-06-06git-read-tree: simplify merge loops enormouslyLinus Torvalds
Stop trying to haev this stateful thing that keeps track of what it has seen, and use a much simpler "gather all the different stages with the same name together and just merge them in one go" approach. Makes it a lot more understandable, and allows the different merge algorithms to share the basic merge loop.
2005-06-06[PATCH] index locking like everybody elseJunio C Hamano
This patch teaches read-tree how to use the index file locking helpers the same way "checkout-cache -u" and "update-cache" do. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06Add "__noreturn__" attribute to die() and usage()Linus Torvalds
Only with gcc. It fixes some warnings for certain versions of gcc, but not apparently all.
2005-06-06git-rev-list: make sure to link with ssl librariesLinus Torvalds
Needed for the bignum stuff used by merge-order.
2005-06-06[PATCH] Modify git-rev-list to linearise the commit history in merge order.jon@blackcubes.dyndns.org
This patch linearises the GIT commit history graph into merge order which is defined by invariants specified in Documentation/git-rev-list.txt. The linearisation produced by this patch is superior in an objective sense to that produced by the existing git-rev-list implementation in that the linearisation produced is guaranteed to have the minimum number of discontinuities, where a discontinuity is defined as an adjacent pair of commits in the output list which are not related in a direct child-parent relationship. With this patch a graph like this: a4 --- | \ \ | b4 | |/ | | a3 | | | | | a2 | | | | c3 | | | | | c2 | b3 | | | /| | b2 | | | c1 | | / | b1 a1 | | | a0 | | / root Sorts like this: = a4 | c3 | c2 | c1 ^ b4 | b3 | b2 | b1 ^ a3 | a2 | a1 | a0 = root Instead of this: = a4 | c3 ^ b4 | a3 ^ c2 ^ b3 ^ a2 ^ b2 ^ c1 ^ a1 ^ b1 ^ a0 = root A test script, t/t6000-rev-list.sh, includes a test which demonstrates that the linearisation produced by --merge-order has less discontinuities than the linearisation produced by git-rev-list without the --merge-order flag specified. To see this, do the following: cd t ./t6000-rev-list.sh cd trash cat actual-default-order cat actual-merge-order The existing behaviour of git-rev-list is preserved, by default. To obtain the modified behaviour, specify --merge-order or --merge-order --show-breaks on the command line. This version of the patch has been tested on the git repository and also on the linux-2.6 repository and has reasonable performance on both - ~50-100% slower than the original algorithm. This version of the patch has incorporated a functional equivalent of the Linus' output limiting algorithm into the merge-order algorithm itself. This operates per the notes associated with Linus' commit 337cb3fb8da45f10fe9a0c3cf571600f55ead2ce. This version has incorporated Linus' feedback regarding proposed changes to rev-list.c. (see: [PATCH] Factor out filtering in rev-list.c) This version has improved the way sort_first_epoch marks commits as uninteresting. For more details about this change, refer to Documentation/git-rev-list.txt and http://blackcubes.dyndns.org/epoch/. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06Fix off-by-one in new three-way-merge updatesLinus Torvalds
That's the final one ("Yeah, sure, we believe you"). Anyway, at least the tests pass, which is not saying a lot, since they don't end up testing all the new the things that the new merge world order tries to do. But hopefully we're now at least not any worse off than we were before the rewrite.
2005-06-06[PATCH] 3-way merge tests for new "git-read-tree -m"?Junio C Hamano
The updated git-tread-tree -m is more strict in that it wants to have the original cache up to date. The initial part of t1000 (merge tests from hell) fails due to it. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-06Three-way merge: fix silly bug that made trivial merges not workLinus Torvalds
Making the main loop look more like the one- and two-way cases introduced a bug where "src" had been updated early, but later users hadn't been adjusted to match.
2005-06-06Fix entry.c dependency and compile problemLinus Torvalds
Bad Linus.
2005-06-06git-read-tree: fix up two-way mergeLinus Torvalds
This is starting to look better.
2005-06-06More work on merging with git-read-tree..Linus Torvalds
Add a "-u" flag to update the tree as a result of a merge. Right now this code is way too anal about things, and fails merges it shouldn't, but let me fix up the different cases and this will allow for much smoother merging even in the presense of dirty data in the working tree.
2005-06-06Make fiel checkout function available to the git libraryLinus Torvalds
The merge stuff will want it soon, and we don't want to duplicate all the work..
2005-06-06git-read-tree: fix up three-way merge testsLinus Torvalds
When we collapse three entries, we need to check all of the collapsed entries against the old pre-merge state.
2005-06-06git-read-tree: be a lot more careful about merging dirty treesLinus Torvalds
We don't want to overwrite state that we haven't committed yet when merging, so it's better to make git-read-tree fail than end up with a merge tree that ends up not having the dirty changes. Update git-resolve-script to fail cleanly when git-read-tree fails.
2005-06-05[PATCH] Make git-update-cache --force-remove regularPetr Baudis
Make the --force-remove flag behave same as --add, --remove and --replace. This means I can do git-update-cache --force-remove -- file1.c file2.c which is probably saner and also makes it easier to use in cg-rm. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-05[PATCH] rename git-rpush and git-rpull to git-ssh-push and git-ssh-pullJunio C Hamano
In preparation for 1.0 release, this makes the command names consistent with others in git-*-pull family. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-05diff 'rename' format change.Linus Torvalds
Clearly even Junio felt git "rename" header lines should say "from/to" instead of "old/new", since he wrote the documentation that way. This way it also matches "copy". git-apply will accept both versions, at least for a while.
2005-06-05git-apply: consider it an error to apply no changesLinus Torvalds
A "--stat" or a "--check" will just be quiet, but if you try to apply something with no changes, that's an error.
2005-06-05[PATCH] Documentation: describe git extended diff headers.Junio C Hamano
The documentation failed to describe "diff --git" extended diff headers, so add some. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>