swh:1:snp:47f1e8bb459169b0feb652a9c3d9cbabd8526d4a

sort by:
Revision Author Date Message Commit Date
12db485 Merge branches 'lt/show' and 'lt/revlist' * lt/show: git-show * lt/revlist: rev-parse lstat() workaround cleanup. 06 February 2006, 07:55:09 UTC
a8c4453 Merge branches 'jc/daemon' and 'mw/http' * jc/daemon: daemon: extend user-relative path notation. daemon: Set SO_REUSEADDR on listening sockets. daemon: do not forbid user relative paths unconditionally under --base-path * mw/http: http-fetch: Tidy control flow in process_alternate_response http: Turn on verbose Curl messages if GIT_CURL_VERBOSE set in environment http-fetch: Fix message reporting rename of object file. http-fetch: Fix object list corruption in fill_active_slots(). 06 February 2006, 07:54:14 UTC
45392a6 git-diff-tree --stdin: show all parents. git-diff-tree --stdin ignored second and subsequent parents when fed git-rev-list --parents output. Update diff_tree_commit() function to take a commit object, and pass a fabricated commit object after grafting the fake parents from diff_tree_stdin(). Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 07:00:41 UTC
e3c3a55 combine-diff: remove misguided --show-empty hack. Now --always flag is available in diff-tree, there is no reason to have that hack in the diffcore side. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 06:25:00 UTC
9ad0a93 rev-parse lstat() workaround cleanup. Earlier we had a workaround to avoid misspelled revision name to be taken as a filename when "--no-revs --no-flags" are in effect. This cleans up the logic. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 05:49:42 UTC
2718435 git-send-email: Fully implement --quiet and document it. Also reorganizes the man page to list options alphabetically. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 02:23:53 UTC
603968d daemon: extend user-relative path notation. Earlier, we made --base-path to automatically forbid user-relative paths, which was probably a mistake. This introduces --user-path (or --user-path=path) option to control the use of user-relative paths independently. The latter form of the option can be used to restrict accesses to a part of each user's home directory, similar to "public_html" some webservers supports. If we're invoked with --user-path=FOO option, then a URL of the form git://~USER/PATH/... resolves to the path HOME/FOO/PATH/..., where HOME is USER's home directory. [jc: This is much reworked by me so bugs are mine, but the original patch was done by Mark Wooding.] Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:51:01 UTC
1955fab daemon: Set SO_REUSEADDR on listening sockets. Without this, you can silently lose the ability to receive IPv4 connections if you stop and restart the daemon. [jc: tweaked code organization a bit and made this controllable from a command line option.] Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:51:01 UTC
363f24c daemon: do not forbid user relative paths unconditionally under --base-path Using base-path to relocate the server public space does not have anything to do with allowing or forbidding user relative paths. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:51:01 UTC
a3f583c http-fetch: Tidy control flow in process_alternate_response It's a bit convoluted. Tidy it up. Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:49:17 UTC
7982d74 http: Turn on verbose Curl messages if GIT_CURL_VERBOSE set in environment Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:49:16 UTC
7b934ec http-fetch: Fix message reporting rename of object file. move_temp_to_file returns 0 or -1. This is not a good thing to pass to strerror(3). Fortunately, someone already reported the error, so don't worry too much. Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:49:16 UTC
09db444 http-fetch: Fix object list corruption in fill_active_slots(). In fill_active_slots() -- if we find an object which has already arrived, say as part of a pack, /don't/ remove it from the list. It's already been prefetched and someone will ask for it later. Just label it as done and carry blithely on. (As it was, the code would dereference a freed object to continue through the list anyway.) Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:49:16 UTC
80d48ac git-show This is essentially 'git whatchanged -n1 --always --cc "$@"'. Just like whatchanged takes default flags from whatchanged.difftree configuration, this uses show.difftree configuration. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:42:49 UTC
df9892f git-diff: use --cc instead of -p. The --cc output is much nicer when dealing with merges, so use it by default. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:37:18 UTC
4abd896 diff-index: make --cc a synonym for -p for now. It could be made later to show unmerged state nicer than the default as we did for diff-files later, but this would suffice for now. We would like to make --cc the default for 'git diff'. Signed-off-by: Junio C Hamano <junkio@cox.net> 06 February 2006, 00:36:12 UTC
ec0bdb6 diff-tree --always flag It _might_ make sense for certain users like gitk and gitview if we had a single tool that gives --pretty and its diff even if the diff is empty. Having said that, the flag --cc -m is too specific. If some uses want to see the commit log even for an empty diff, that flag should not be something only --cc honors. Here's an "--always" flag that does that. Signed-off-by: Junio C Hamano <junkio@cox.net> 05 February 2006, 21:46:19 UTC
04fe2a1 Use adler32() from zlib instead of defining our own. Since we already depend on zlib, we don't need to define our own adler32(). Spotted by oprofile. Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net> 05 February 2006, 21:45:01 UTC
9523a4c Fix git-rev-parse over-eager errors Using "--verify" together with "--no-flags" makes perfect sense, but git-rev-parse would complain about it when it saw a flag, even though it would never actually use/output that flag. This fixes it. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 05 February 2006, 21:44:59 UTC
7334f06 Do not fall back on vi on dumb terminals. When TERM is set to 'dumb', do not start vi to edit the commit log message. Suggested by Amos Waterland. Signed-off-by: Junio C Hamano <junkio@cox.net> 05 February 2006, 06:16:22 UTC
2d310d8 Merge branches 'jc/sha1', 'jc/diff' and 'jc/ws' * jc/sha1: get_sha1_1: allow octopus^12 to be properly parsed. * jc/diff: combine-diff: finishing touches to git-diff-tree --cc * jc/ws: whitespace cleanup. 04 February 2006, 07:52:20 UTC
8361e1d Use sha1_file.c's mkdir-like routine in apply.c. As far as I can see, create_subdirectories() in apply.c just duplicates the functionality of safe_create_leading_directories() from sha1_file.c. The former has a warm, fuzzy const parameter, but that's not important. The potential problem with EEXIST and creating directories should never occur here, but will be removed by future safe_create_leading_directories() changes. Other uses of EEXIST in apply.c should be fine barring intentionally malicious behavior. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> 04 February 2006, 07:35:14 UTC
1fda3d5 daemon: Provide missing argument for logerror() call. Could cause a crash if --base-path set. Unlikely to be a security the concern: message doesn't go to the client, so we can't leak anything (except by dumping core), and we've already forked, so it's not a denial of service. Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> 04 February 2006, 07:33:20 UTC
c0c74a8 git-merge: Properly quote $merge_msg variable. Otherwise it would go though shell expansion... Signed-off-by: Junio C Hamano <junkio@cox.net> 04 February 2006, 03:41:33 UTC
0601dbe get_sha1_1: allow octopus^12 to be properly parsed. We probably thought anybody who does more than 9 parents in an Octopus is insane when this was initially done, but there is no inherent reason to limit the number of independent topic branches that happen to mature at the same time. Our commit-tree allows up to 16 already, so at least we should prepare to handle what we can produce, if only to be consistent. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 07:49:44 UTC
8fcf7f9 whitespace cleanup. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:54:24 UTC
46dc941 combine-diff: cleanup. The flag on the surviving lines meant "this parent is not different" while the parent_map flag on the lost lines meant "this parent is different", which was confusing. So swap the meaning of on-bit in the flag. Also more heavily comment the code. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:53:26 UTC
f16706c combine-diff: show parent line numbers as well. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:53:26 UTC
f7a3d33 combine-diff: finishing touches to git-diff-tree --cc This updates the output format to make administrative lines more consistent with the traditional diffs. The "index" line shows blob object names from each parents (separated by commas), double dots and the object name of the resulting blob. The hunk header line begins with N+1 '@' characters for N-way diff, the line number L of the first line in the hunk and line count C from the parent in "-L,C" format for each parents and then the line number of the first line in the hunk and line count from the resulting file in "+L,C" format, and finally N+1 '@' characters (earlier versions had the line numbers from the resulting file at the beginning). Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:53:26 UTC
b469d8b combine-diff: add a bit more comments. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:53:25 UTC
30d08b3 git-send-email: Add --quiet to reduce some of the chatter when sending emails. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:52:51 UTC
d366c70 Provide a more meaningful initial "From " line when using --compose in git-send-email. git-send-email, when used with --compose, provided the user with a mbox-format file to edit. Some users, however, were confused by the leading, blank, "From " line, so this change puts the value that will appear on the From: line of the actual email on this line, along with a note that the line is ignored. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:52:50 UTC
6bfb27a commit.c: "Merge" fix in pretty_print_commit. Earlier, f2d4227530499db3e273ae84f30adfd4b70791c6 commit broke Merge: lines for unabbreviated case. Do not emit extra dots if we do not abbreviate. Signed-off-by: Junio C Hamano <junkio@cox.net> 03 February 2006, 01:52:19 UTC
97f58b7 merge-recursive: Speed up commit graph construction Use __slots__ to speed up construction and decrease memory consumption of the Commit objects. Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 20:30:51 UTC
008bb6e merge-recursive: Make use of provided bases This makes some cases faster as we don't have to build the commit graph. Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 20:30:51 UTC
985cb9c Documentation: git-diff-tree --cc also omits empty commits A misguided attempt to show logs at all time was inserted only to the documentation of this flag. Worse yet, it was not even implemented, causing more confusion. Drop it. We might want to have an option to show --pretty even when there is no diff output, but that is applicable to all forms of diff, not just --cc. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 19:28:38 UTC
823bcd6 combine-diff: fix placement of deletion. The code misplaced a raw hunk that consists of solely deleted lines by one line. This showed e.g. Len's 12-way octopus (9fdb62af in the linux-2.6), kernel/power/disk.c, hunk starting at line 95, incorrectly. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 13:21:14 UTC
fd4b1d2 combine-diff: add safety check to --cc. The earlier change implemented "only two version" check but without checking if the change rewrites from all the parents. This implements a check to make sure that a change introduced by the merge from all the parents is caught to be interesting. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 10:02:20 UTC
bf1c32b combine-diff: update --cc "uninteresting hunks" logic. Earlier logic was discarding hunks that has difference from only one parent or the same difference from all but one parent. This changes it to check if the differences on all lines are from the same sets of parents. This discards more uninteresting hunks and seems to match expectations more naturally. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 10:02:20 UTC
3c39e9b combine-diff: reuse diff from the same blob. When dealing with an insanely large Octopus, it is possible to optimize by noticing that more than one parents have the same blob and avoid running diff between a parent and the merge result by reusing an earlier result. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 10:02:20 UTC
6a1f79c Allow diff and index commands to be interrupted So far, e.g. git-update-index --refresh was basically uninterruptable by ctrl-c, since it hooked the SIGINT handler, but that handler would only unlink the lockfile but not actually quit. This makes it propagate the signal to the default handler. Note that I expected it to work without resetting the signal handler to SIG_DFL, but without that it ended in an infinite loop of tgkill()s - is my glibc violating SUS or what? Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 03:47:52 UTC
8849442 rev-list: omit duplicated parents. Showing the same parent more than once for a commit does not make much sense downstream, so stop it. This can happen with an incorrectly made merge commit that merges the same parent twice, but can happen in an otherwise sane development history while squishing the history by taking into account only commits that touch specified paths. For example, $ git rev-list --max-count=1 --parents addafaf -- rev-list.c would have to show this commit ancestry graph: .---o---. / \ .---*---o---. / 93b74bc \ ---*---o---o-----o---o-----o addafaf d8f6b34 \ / .---o---o---. \ / .---*---. 3815f42 where 5 independent development tracks, only two of which have changes in the specified paths since they forked. The last change for the other three development tracks was done by the same commit before they forked, and we were showing that three times. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 03:47:26 UTC
2d49711 update-index --index-info: allow stage 0 entries. Somehow we did not allow stuffing the index with stage 0 entries through --index-info interface. I do not think of a reason to forbid it offhand. Signed-off-by: Junio C Hamano <junkio@cox.net> 02 February 2006, 03:45:55 UTC
d9e2e12 git-svnimport.perl: fix for 'arg list too long...' This fixes 'arg list too long..' problem with git-ls-files. Note that second arg list separation loop (with 'git-update-index') is needed since git-ls-files arguments can be directories. Signed-off-by: Sasha Khapyorsky <sashak@voltaire.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 22:23:47 UTC
cb754fd Use local structs for HTTP slot callback data There's no need for these structures to be static, and it could potentially cause problems down the road. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 02:03:46 UTC
8233340 rev-list: allow -<n> as shorthand for --max-count=<n> This builds on top of the previous one. Traditionally, head(1) and tail(1) allow their line limits to be parsed this way. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:23:03 UTC
3af0698 rev-list: allow -n<n> as shorthand for --max-count=<n> Both -n<n> and -n <n> are supported. POSIX versions of head(1) and tail(1) allow their line limits to be parsed this way. I find --max-count to be a commonly used option, and also similar in spirit to head/tail, so I decided to make life easier on my worn out (and lazy :) fingers with this patch. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:23:03 UTC
e36f8b6 Make apply accept the -pNUM option like patch does. This only applies to traditional diffs, not to git diffs. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:22:01 UTC
c8568e1 Fix HTTP request result processing after slot reuse Add a way to store the results of an HTTP request when a slot finishes so the results can be processed after the slot has been reused. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:17:24 UTC
7ec5755 Make git-tar-tree use the tree_desc abstractions Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:07:02 UTC
50f9a85 Make the "struct tree_desc" operations available to others We have operations to "extract" and "update" a "struct tree_desc", but we only used them in tree-diff.c and they were static to that file. But other tree traversal functions can use them to their advantage Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 01 February 2006, 00:07:01 UTC
1a5c3a0 Merge branches 'bf/doc' and 'db/tartree' 31 January 2006, 06:41:00 UTC
807f900 documentation: cvs migration - typofix. Signed-off-by: Junio C Hamano <junkio@cox.net> 31 January 2006, 05:01:25 UTC
c3f9281 Use struct commit in tar-tree It was open-coding getting the commit date from a commit. Signed-off-by: Daniel Barkalow <barkalow@iabervon> Signed-off-by: Junio C Hamano <junkio@cox.net> 31 January 2006, 03:08:38 UTC
5207234 Use struct tree in tar-tree It was using an open-coded tree parser; use a struct tree instead. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 31 January 2006, 03:08:37 UTC
b8bc67c cvs-migration documentation update Here's some changes to the cvs-migration.txt. As usual, in my attempt to make things clearer someone may have found I've made them less so, or I may have just gotten something wrong; so any review is welcomed. I can break up this sort of thing into smaller steps if preferred, the monolothic patch is just a bit simpler for me for this sort of thing. I moved the material describing shared repository management from core-tutorial.txt to cvs-migration.txt, where it seems more appropriate, and combined two sections to eliminate some redundancy. I also revised the earlier sections of cvs-migration.txt, mainly trying to make it more concise. I've left the last section of cvs-migration.txt (on CVS annotate alternatives) alone for now. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> 31 January 2006, 03:08:33 UTC
1506fc3 cvsexportcommit: add some examples to the documentation Updated with Randall Schwartz's suggestion. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net> 30 January 2006, 07:25:42 UTC
d41df15 exportcommit: replace backticks with safe_pipe_capture() or system() - initial pass Replaced backticks with potentially troublesome unescaped input with safe_pipe_capture(). Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net> 30 January 2006, 07:25:41 UTC
5179c8a cvsimport: Add -S <skipfileregex> support and -v announces files retrieved A couple of things that seem to help importing broken CVS repos... -S '<slash-delimited-regex>' skips files with a matching path -v prints file name and version before fetching from cvs Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net> 30 January 2006, 07:25:38 UTC
36b5b3c Merge fixes up to GIT 1.1.6 30 January 2006, 01:56:45 UTC
8fedb83 GIT 1.1.6 30 January 2006, 01:55:20 UTC
f0fff36 git push -f documentation Signed-off-by: Junio C Hamano <junkio@cox.net> 30 January 2006, 01:54:43 UTC
075dd8e git-branch: Documentation fixes Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net> 29 January 2006, 23:00:46 UTC
4353f38 merge-recursive: Improve the error message printed when merge(1) isn't found. Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net> 29 January 2006, 23:00:42 UTC
d37fd03 [PATCH] pre-commit sample hook: do not barf on the initial import The example hook barfs on the initial import. Ideally it should produce a diff from an empty tree, but for now let's stop at squelching the bogus error message. Often an initial import involves tons of badly formatted files from foreign SCM, so not complaining about them like this patch does might actually be a better idea than enforcing the "Perfect Patch" format on them. Signed-off-by: Junio C Hamano <junkio@cox.net> 29 January 2006, 22:52:16 UTC
34801ca Documentation: diff -c/--cc Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 10:26:30 UTC
939aabb diff-files -c/--cc: combine only when both ours and theirs exist. The previous round forgot to make sure there actually are two versions to compare against the working tree version. Otherwise using -c/--cc would not make much sense. Also plug a small memory leak. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 10:26:18 UTC
addafaf Merge lt/revlist,jc/diff,jc/revparse,jc/abbrev 28 January 2006, 08:16:09 UTC
b33aba5 rev-parse: make "whatchanged -- git-fetch-script" work again. The latest update to avoid misspelled revs interfered when we were not interested in parsing non flags or arguments not meant for rev-list. This makes these two forms work again: git whatchanged -- git-fetch-script We could enable "!def" in the part this change touches to make the above work without '--', but then it would cause misspelled v2.6.14..v2.6.16 to be given to diff-tree and defeats the whole point of the previous fix. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:58 UTC
6b1ddbd diff --abbrev=<n> option fix. Earier specifying an abbreviation shorter than minimum fell back to full 40 letters, which was nonsense. Make it to fall back to the minimum number (currently 4). Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:39 UTC
f2d4227 pretty_print_commit: honor grafts. When displaying Merge: lines, we used to take the real commit parents from the commit objects. Use the parsed parents from the commit object instead, so that we honor fake parent information from info/grafts. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:39 UTC
3815f42 pretty_print_commit(): pass commit object instead of commit->buffer. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:39 UTC
62a604b Rename rev-parse --abbrev to --short. The usage of rev-parse to serve as a flag/option parser for git-whatchanged and other commands have serious limitation that the flags cannot be something that is supported by rev-parse itself, and it cannot worked around easily. Since this is rarely used "poor-man's describe", rename the option for now as an easier workaround. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:39 UTC
1dc4fb8 rev-parse --abbrev: do not try abbrev shorter than minimum. We do not allow abbreviation shorter than 4 letters in other parts of the system so do not attempt to generate such. Noticed by Uwe Zeisberger. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:39 UTC
b2d4c56 diff-tree: abbreviate merge parent object names with --abbrev --pretty. When --abbrev is in effect, abbreviate the merge parent names in prettyprinted output. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:38 UTC
d501250 rev-parse: --abbrev option. The new option behaves just like --verify, but outputs an abbreviated object name that is unique within the repository. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:38 UTC
46a6c26 abbrev cleanup: use symbolic constants The minimum length of abbreviated object name was hardcoded in different places to be 4, risking inconsistencies in the future. Also there were three different "default abbreviation precision". Use two C preprocessor symbols to clean up this mess. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:09:38 UTC
93b74bc rev-list --remove-empty: add minimum help and doc entry. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:38 UTC
461cf59 rev-list: stop when the file disappears The one thing I've considered doing (I really should) is to add a "stop when you don't find the file" option to "git-rev-list". This patch does some of the work towards that: it removes the "parent" thing when the file disappears, so a "git annotate" could do do something like git-rev-list --remove-empty --parents HEAD -- "$filename" and it would get a good graph that stops when the filename disappears (it's not perfect though: it won't remove all the unintersting commits). It also simplifies the logic of finding tree differences a bit, at the cost of making it a tad less efficient. The old logic was two-phase: it would first simplify _only_ merges tree as it traversed the tree, and then simplify the linear parts of the remainder independently. That was pretty optimal from an efficiency standpoint because it avoids doing any comparisons that we can see are unnecessary, but it made it much harder to understand than it really needed to be. The new logic is a lot more straightforward, and compares the trees as it traverses the graph (ie everything is a single phase). That makes it much easier to stop graph traversal at any point where a file disappears. As an example, let's say that you have a git repository that has had a file called "A" some time in the past. That file gets renamed to B, and then gets renamed back again to A. The old "git-rev-list" would show two commits: the commit that renames B to A (because it changes A) _and_ as its parent the commit that renames A to B (because it changes A). With the new --remove-empty flag, git-rev-list will show just the commit that renames B to A as the "root" commit, and stop traversal there (because that's what you want for "annotate" - you want to stop there, and for every "root" commit you then separately see if it really is a new file, or if the paths history disappeared because it was renamed from some other file). With this patch, you should be able to basically do a "poor mans 'git annotate'" with a fairly simple loop: push("HEAD", "$filename") while (revision,filename = pop()) { for each i in $(git-rev-list --parents --remove-empty $revision -- "$filename") pseudo-parents($i) = git-rev-list parents for that line if (pseudo-parents($i) is non-empty) { show diff of $i against pseudo-parents continue } /* See if the _real_ parents of $i had a rename */ parent($i) = real-parent($i) if (find-rename in $parent($i)->$i) push $parent($i), "old-name" } which should be doable in perl or something (doing stacks in shell is just too painful to be worth it, so I'm not going to do this). Anybody want to try? Linus 28 January 2006, 08:08:38 UTC
ea726d0 diff-files: -c and --cc options. This ports the "combined diff" to diff-files so that differences to the working tree files since stage 2 and stage 3 are shown the same way as combined diff output from diff-tree for the merge commit would be shown if the current working tree files are committed. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
3ec1909 combine-diff: better hunk splitting. It considered an otherwise unchanged line that had line removals in front of it an interesting line, which caused hunks to have one extra the trailing context line. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
8828cdc diff-tree --cc: squelch header generation on empty patch. Earlier round showed the commit log header and "diff --combined" header even for paths that had no interesting hunk under --cc flag. Move the header display logic around to squelch them. With this, a merge that does not have any interesting merges will not be shown with --cc option, unless -m is used at the same time. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
263eee2 combine-diff: extend --cc logic to Octopus. Santi Bejar points out that a hunk that changes from all the same common parents except one is uninteresting. The earlier round marked changes from only one parent uninteresting, but this also marks hunks that have the same change from all but one parent uninteresting, which is a natural extension of the original idea to Octopus merges. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
e228340 combine-diff: minor output changes. Remove extra whitespace between the change indicators and the body text. That is more in line with the uncombined unified diff output (pointed out by Santi Bejar). When showing --cc, say so instead of saying just --combined. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
5290a0f combine-diff: fix appending at the tail of a list. ... and use the established pattern of tail initialized to point at the head pointer for an empty list, and updated to point at the next pointer field of the item at the tail when appending. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:29 UTC
d8f4790 diff-tree --cc: denser combined diff output for a merge commit. Building on the previous '-c' (combined) option, '--cc' option squelches the output further by omitting hunks that consist of difference with solely one parent. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:28 UTC
af3feef diff-tree -c: show a merge commit a bit more sensibly. A new option '-c' to diff-tree changes the way a merge commit is displayed when generating a patch output. It shows a "combined diff" (hence the option letter 'c'), which looks like this: $ git-diff-tree --pretty -c -p fec9ebf1 | head -n 18 diff-tree fec9ebf... (from parents) Merge: 0620db3... 8a263ae... Author: Junio C Hamano <junkio@cox.net> Date: Sun Jan 15 22:25:35 2006 -0800 Merge fixes up to GIT 1.1.3 diff --combined describe.c @@@ +98,7 @@@ return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1; } - static void describe(char *arg) - static void describe(struct commit *cmit, int last_one) ++ static void describe(char *arg, int last_one) { + unsigned char sha1[20]; + struct commit *cmit; There are a few things to note about this feature: - The '-c' option implies '-p'. It also implies '-m' halfway in the sense that "interesting" merges are shown, but not all merges. - When a blob matches one of the parents, we do not show a diff for that path at all. For a merge commit, this option shows paths with real file-level merge (aka "interesting things"). - As a concequence of the above, an "uninteresting" merge is not shown at all. You can use '-m' in addition to '-c' to show the commit log for such a merge, but there will be no combined diff output. - Unlike "gitk", the output is monochrome. A '-' character in the nth column means the line is from the nth parent and does not appear in the merge result (i.e. removed from that parent's version). A '+' character in the nth column means the line appears in the merge result, and the nth parent does not have that line (i.e. added by the merge itself or inherited from another parent). The above example output shows that the function signature was changed from either parents (hence two "-" lines and a "++" line), and "unsigned char sha1[20]", prefixed by a " +", was inherited from the first parent. The code as sent to the list was buggy in few corner cases, which I have fixed since then. It does not bother to keep track of and show the line numbers from parent commits, which it probably should. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 08:08:28 UTC
6b94f1e merge: seed the commit message with list of conflicted files. The files with conflicts need to be hand resolved, and it is a good discipline for the committer to explain which branch was taken and why. Pre-fill the merge message template with the list of conflicted paths to encourage it. This is from Linus. Signed-off-by: Junio C Hamano <junkio@cox.net> 28 January 2006, 07:05:05 UTC
767e130 Merge fixes up to GIT 1.1.5 Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 22:50:10 UTC
2111168 GIT 1.1.5 Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 22:49:30 UTC
ca18205 GIT 1.0.13 Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 22:46:10 UTC
1ecc18e checkout: do not make a temporary copy of symlink target. If the index records an insanely long symbolic link, copying into the temporary would overflow the buffer (noticed by Mark Wooding). Because read_sha1_file() terminates the returned buffer with NUL since late May 2005, there is no reason to copy it anymore. Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 22:44:07 UTC
b3bf974 Add freebsd support in Makefile Needs iconv and third party lib/headers are inside /usr/local Signed-off-by: Alecs King <alecsk@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 02:14:40 UTC
374dfaa Make GIT-VERSION-GEN tolerate missing git describe command again Commit 5c7d3c95 broke that by making the git-describe command part of a pipe. Signed-off-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 02:14:02 UTC
e974c9a Use symbolic name SHORT_NAME_AMBIGUOUS as error return value Signed-off-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 02:13:54 UTC
a8608db Remove unneeded header Signed-off-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 02:12:58 UTC
2796a9d git-fetch --upload-pack: disambiguate. Johannes noticed the recent addition of this new flag inadvertently took over existing --update-head-ok (-u). Require longer abbreviation to this new option which would be needed in a rare setup. Signed-off-by: Junio C Hamano <junkio@cox.net> 27 January 2006, 02:11:06 UTC
521698b Only use a single parser for tree objects This makes read_tree_recursive and read_tree take a struct tree instead of a buffer. It also move the declaration of read_tree into tree.h (where struct tree is defined), and updates ls-tree and diff-index (the only places that presently use read_tree*()) to use the new versions. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net> 26 January 2006, 09:08:29 UTC
731043f Add compat/unsetenv.c . Implement a (slow) unsetenv() for older systems. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> 25 January 2006, 23:10:39 UTC
5ea06e2 Run GIT-VERSION-GEN with $(SHELL), not sh. Alas, not all shells named sh are capable enough to run GIT-VERSION-GEN. Signed-off-by: Jason Riedy <ejr@cs.berkeley.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> 25 January 2006, 23:10:37 UTC
back to top