summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2005-06-20Make rev-parse understand "extended sha1" syntaxLibravatar Linus Torvalds1-4/+57
You can say "HEAD.p" for the "parent of HEAD". It nests, so HEAD.p2.p means parent of second parent of HEAD (which obviously depends on HEAD being a merge).
2005-06-20Keep the parents in order when parsing commitsLibravatar Linus Torvalds1-1/+3
We used to keep the parents in reverse order in the commit_list. Most users don't care, but it's wrong, and the next commit does care.
2005-06-20git-rev-parse: flush "default" head when encountering something unexpectedLibravatar Linus Torvalds1-1/+4
The unexpected thing is likely a pathname, we need the default for that too.
2005-06-20[PATCH] git-resolve-script: Add LAST_MERGE and use git-rev-parseLibravatar Dan Holmsand1-9/+15
Make git-resolve-script only write MERGE_HEAD if a merge actually occurred. All merge failures leave ORIG_HEAD and LAST_MERGE behind (instead of ORIG_HEAD and MERGE_HEAD). Use git-rev-parse to expand arguments (and check for bad ones). Signed-off-by: Dan Holmsand <holmsand@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-20git-rev-parse: parse ".." before simple SHA1'sLibravatar Linus Torvalds1-14/+14
This fixes "<hexsha1>..*", since get_sha1() will happily ignore any garbage at the end and thus we never got to the ".." check before.
2005-06-19Avoid gcc warning in diff-stages.cLibravatar Linus Torvalds1-1/+1
Put explicit parentheses around && in ||-expression.
2005-06-19[PATCH] Fix for --merge-order, --max-age interaction issueLibravatar Jon Seymour1-2/+11
This patch fixes a problem reported by Paul Mackerras regarding the interaction of the --merge-order and --max-age switches of git-rev-list. This patch applies to the current Linus HEAD. A cleaner fix for the same problem in my current HEAD will follow later. With this change, --merge-order produces the same result as no --merge-order on the linux-2.6 git repository, to wit: $> git-rev-list --max-age=1116330140 bcfff0b471a60df350338bcd727fc9b8a6aa54b2 | wc -l 655 $> git-rev-list --merge-order --max-age=1116330140 bcfff0b471a60df350338bcd727fc9b8a6aa54b2 | wc -l 655 Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Prevent git-rev-list without --merge-order producing duplicates in ↵Libravatar Jon Seymour2-8/+10
output If b is reachable from a, then: git-rev-list a b argument would print one of the commits twice. This patch fixes that problem. A previous problem fixed it for the --merge-order switch. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Prevent git-rev-list --merge-order producing duplicates in the outputLibravatar Jon Seymour1-14/+21
If a is reachable from b, then git-rev-list --merge-order b a would produce a duplicate output of b. This causes a problem for an upcoming version of gitk since it breaks the --merge-order ordering invariant. This patch fixes the problem for the --merge-order switch. A subsequent patch will fix the problem for the non --merge-order switch. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Relaxes error checking in epoch.c to allow duplicate parentsLibravatar Jon Seymour1-10/+6
Given that real trees in the wild include parents with duplicate parents, I have relaxed over-zealous error checking in epoch.c and dealt with the problem a different way - duplicate parents are now silently ignored. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Fixes problem with --merge-order head ^headLibravatar Jon Seymour1-1/+3
git-rev-list --merge-order HEAD ^HEAD was faulting rather than generating an empty output. This patch fixes that problem. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Tweaked --merge-order --show-breaks output in case specified head ↵Libravatar Jon Seymour1-0/+2
has no parent git-rev-list --merge-order --show-breaks root Was outputing: | root It now outputs: = root Which is consistent with the behaviour of other cases. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Additional git-rev-list unit tests to demonstrate problems that ↵Libravatar Jon Seymour1-61/+375
require fixes 1. --merge-order doesn't deal properly with a specified head that has no parent * FAIL 11: head has no parent 2. --merge-order doesn't deal properly with arguments of the form head ^head * FAIL 30: head ^head --merge-order git-rev-list --merge-order --show-breaks a3 ^a3 3. if one of the specified heads is reachable from the other, the head gets printed twice and this causes problems for upcoming versions of gitk. This is true for both --merge-order and non --merge-order style of invocations. * FAIL 24: one specified head reachable from another a4, c3, --merge-order * FAIL 26: one specified head reachable from another a4, c3, no --merge-order * FAIL 27: one specified head reachable from another c3, a4, no --merge-order 4. --merge-order aborts with commits that list the same parent twice...it should handle it more gracefully. * no longer unit testable 5. broken interaction between --merge-order and --max-age previously posted as: "[PATCH 1/2] Test case that demonstrates problem with --merge-order, --max-age interaction" * FAIL 23: --max-age=c3, --merge-order Later patches in this patch set fix these problems. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Rework -B output.Libravatar Junio C Hamano4-95/+186
Patch for a completely rewritten file detected by the -B flag was shown as a pair of creation followed by deletion in earlier versions. This was an misguided attempt to make reviewing such a complete rewrite easier, and unnecessarily ended up confusing git-apply. Instead, show the entire contents of old version prefixed with '-', followed by the entire contents of new version prefixed with '+'. This gives the same easy-to-review for human consumer while keeping it a single, regular modification patch for machine consumption, something that even GNU patch can grok. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Update diff documentation.Libravatar Junio C Hamano7-15/+130
This updates diff documentation to discuss --find-copies-harder, and adds descriptions for options that were not described earlier. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] Make -C less eager.Libravatar Junio C Hamano8-18/+37
Like diff-tree, this patch makes -C option for diff-* brothers to use only pre-image of modified files as rename/copy detection by default. Give --find-copies-harder to use unmodified files to find copies from as well. This also fixes "diff-files -C" problem earlier noticed by Linus. It was feeding the null sha1 even when the file in the work tree was known to match what is in the index file. This resulted in diff-files showing everything in the project. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19Make "git commit" clean up after itselfLibravatar Linus Torvalds1-5/+9
Noted by Jeff.
2005-06-19Clean up MERGE_HEAD and ORIG_HEAD also for the trivial fast-forward merges.Libravatar Linus Torvalds1-1/+3
Otherwise you'll be bitten by a stale MERGE_HEAD like Jeff was..
2005-06-19[PATCH] cvs2git.c: support incremental conversionLibravatar Panagiotis Issaris1-6/+18
Add -u option to indicate incremental conversion. I wanted to be able to track CVS repositories in a GIT repository. The cvs2git program worked fine with the initial import but needed a tiny modification to enable me to resync the GIT repository with the updated CVS tree. [ The original version of this patch failed to track the correct branch on the first new commit. Fixed and tested by Sven. ] Signed-off-by: Panagiotis Issaris <takis@lumumba.luc.ac.be> Signed-off-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19[PATCH] ssh-push.c: Fix handling of ssh://host/path URLsLibravatar Sven Verdoolaege1-0/+1
Previous patch to fix host:path notation broke handling of ssh://host/path notation. Signed-off-by: Sven Verdoolaege <skimo@liacs.nl> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-19git-commit-tree: ignore duplicate parentsLibravatar Linus Torvalds1-2/+16
But warn about them. If somebody really ends up later wanting to explicitly add a note that something has the same parent twice (who knows, there are strange people around), we can add a flag to say that it's expected and ok. This was brought on by a commit in the kernel tree, where a repeated merge caused a duplicate parent. Parent duplicates aren't "wrong" per se, they're just in practice not something you are ever interested in.
2005-06-18Fix up INSTALL and "git add"Libravatar Linus Torvalds2-3/+3
As suggested by Junio
2005-06-18read-cache.c: remove stray debugging printfLibravatar Linus Torvalds1-1/+0
Pointed out by Junio, part of my debugging of the rewrite of the file/dir conflict handling.
2005-06-18Re-implement "check_file_directory_conflict()"Libravatar Linus Torvalds1-89/+88
This is (imho) more readable, and is also a lot faster. The expense of looking up sub-directory beginnings was killing us on things like "git-diff-cache", even though that one didn't even care at all about the file vs directory conflicts. We really only care when somebody tries to add a conflicting name to stage 0. We should go through the conflict rules more carefully some day.
2005-06-18Avoid warning about function without return.Libravatar Linus Torvalds1-1/+1
Strangely, this warning only shows up when not compiling with "-O2", which is why I didn't see it originally.
2005-06-18[PATCH] cvs2git and file permissionsLibravatar Sven Verdoolaege1-1/+4
git-cvs2git: propagate mode information Let cvs checkout in a temporary directory rather than using the pipe option to avoid loss of mode information. Signed-off-by: Sven Verdoolaege <skimo@liacs.nl> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-18Make "pretty" commit logs always show merge informationLibravatar Linus Torvalds1-0/+24
Otherwise the "git log" information doesn't tell enough to make sense of a merge. I'll need to add some parent information for regular entries too, I think, but the merge is more important.
2005-06-17git-rev-list: add "--bisect" flag to find the "halfway" pointLibravatar Linus Torvalds1-0/+80
This is useful for doing binary searching for problems. You start with a known good and known bad point, and you then test the "halfway" point in between: git-rev-list --bisect bad ^good and you test that. If that one tests good, you now still have a known bad case, but two known good points, and you can bisect again: git-rev-list --bisect bad ^good1 ^good2 and test that point. If that point is bad, you now use that as your known-bad starting point: git-rev-list --bisect newbad ^good1 ^good2 and basically at every iteration you shrink your list of commits by half: you're binary searching for the point where the troubles started, even though there isn't a nice linear ordering.
2005-06-17Use "-M" instead of "-C" for "git diff" and "git status"Libravatar Linus Torvalds2-4/+4
The "C" in "-C" may stand for "Cool", but it's also pretty slow, since right now it leaves all unmodified files to be tested even if there are no new files at all. That just ends up being unacceptably slow for big projects, especially if it's not all in the cache.
2005-06-17git-apply: use default name for mode change patchesLibravatar Linus Torvalds1-2/+5
Pure mode changes won't have the file-name in the extended header lines, so make sure we pick it up from the default name from the "diff --git" line.
2005-06-17Don't use -C in "git diff"Libravatar Linus Torvalds1-3/+3
Right now it confuses at least git-diff-files, since it leaves all the files (whether changed or not) in the diff queue.
2005-06-17Add some installation notes in INSTALLLibravatar Linus Torvalds1-0/+64
Jens was the second person who hadn't heard of the "merge" program, and didn't have it installed. So document as many dependency and install issues as I can think of.
2005-06-15git-read-tree: fix "--reset" handlingLibravatar Linus Torvalds1-0/+1
2005-06-14Update tutorial a bit for scripted helpers.Libravatar Linus Torvalds1-7/+19
2005-06-14Trivial git script fixupsLibravatar Linus Torvalds6-4/+10
Fix permissions, and add trivial "reset" and "add" scripts. The "reset" script just resets the index back to head, while the "add" script is just a crutch for people used to do "cvs add".
2005-06-14[PATCH] ssh-push: Don't add '/' to pathnameLibravatar Sven Verdoolaege1-3/+4
Paths in the host:path notation are usually interpreted relative to the login directory rather than relative to the root directory. Signed-off-by: Sven Verdoolaege <skimo@liacs.nl> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-14[PATCH] Unset TZ in t5000Libravatar Mark Allen1-2/+3
Unset TZ to force GMT in test #4 and add a set of parens around the length function in the awk script. Signed-off-by: Mark Allen <mrallen1@yahoo.com> Acked-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-14Make 'git' script be a bit more helpful on unrecognized commandsLibravatar Linus Torvalds1-2/+17
2005-06-14Make "git commit" handle initial commits tooLibravatar Linus Torvalds1-12/+31
No need to confuse ex-CVS users with a complex initial commit sequence.
2005-06-13git-apply: normalize file mode when comparing with expected valueLibravatar Linus Torvalds1-0/+1
Sine git only saves the 'x' bit, we shouldn't compare the stat contents directly.
2005-06-13Add "git diff" scriptLibravatar Linus Torvalds2-1/+17
It's a simple helper that depending on the arguments will either use git-diff-files, git-diff-cache or git-diff-tree.
2005-06-13Teach git-rev-parse about revision-specifying argumentsLibravatar Linus Torvalds1-2/+31
Things like "--max-count=xxx" are "rev-only".
2005-06-13git-whatchanged: use the git-rev-parse helperLibravatar Linus Torvalds1-1/+3
So now you can say git-whatchanged -p v2.6.12-rc5.. drivers/usb and it will show you what changed (as a patch) in drivers/usb since the v2.6.12-rc5 release.
2005-06-13git-rev-parse: split "revs" and "non-revs"Libravatar Linus Torvalds1-2/+25
Sometimes we only want to output revisions, and sometimes we want to only see the stuff that wasn't revisions. Teach git-rev-parse to understand the "--revs-only" and "--no-revs" flags.
2005-06-13Make "git log" use the new git-rev-parse helperLibravatar Linus Torvalds1-1/+1
See the previous commit for explanations.
2005-06-13Add 'git-rev-parse' helper scriptLibravatar Linus Torvalds2-1/+72
It's an incredibly cheesy helper that changes human-readable revision arguments into the git-rev-list argument format. You can use it to do something like this: git-rev-list --pretty $(git-rev-parse --default HEAD "$@") which is what git-log-script will become. Here git-rev-parse will then allow you to use arguments like "v2.6.12-rc5.." or similar human-readable ranges. It's really quite stupid: "a..b" will be converted into "a" and "^b" if "a" and "b" are valid object pointers. And the "--default" case will be used if nothing but flags have been seen, so that you can default to a certain argument if there are no other ranges.
2005-06-12git-apply: fix error handling for nonexistent filesLibravatar Linus Torvalds1-1/+1
Missing argument for error() function. We should really use the gcc printf format checking capabilities.
2005-06-12[PATCH] git cvsimport fuzz argumentLibravatar Tommy M. McGuire1-8/+19
Add "-z fuzz" argument, passed to cvsps, and clean up argument processing. Also, use "cvsps --cvs-direct", which is is somewhat faster. Give the user the option of specifying the timestamp fuzz passed to cvsps. Looking at the other arguments to it, I can't see anything else that would be sane to play with. Also, use --cvs-direct, which speeds up cvsps for remote repositories and doesn't seem to do anything bad to local repositories. Signed-off-by: Tommy McGuire <mcguire@crsr.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-12[PATCH] cvs-migration.txtLibravatar Tommy M. McGuire1-5/+7
Slightly expand the cvsimport description, and make a couple of syntax edits. The way I figure it, telling someone why cvsimport is taking so long will improve their overall user experience. :-) Signed-off-by: Tommy McGuire <mcguire@crsr.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-12[PATCH] git cvsimport sanity checkingLibravatar Tommy M. McGuire1-1/+3
This patch adds some sanity checking to git-cvsimport-script, specifically forcing the use of cvsps -x (to get the latest information from the repository, rather than whatever is in the cache) and aborting early if cvsps does not produce any output. I debated removing the $MODULE directory following an abort, but I eventually decided leaving stuff behind would make debugging easier. On the other hand, this patch should help with the "cvsimport left me with an empty repository" complaints. Call cvsps with the -x flag, to get the current state of the repository, and abort the cvs import early if cvsps does not produce any output. Signed-off-by: Tommy McGuire <mcguire@crsr.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>