12db485 | Junio C Hamano | 06 February 2006, 07:55:09 UTC | 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 | Junio C Hamano | 06 February 2006, 07:54:14 UTC | 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 | Junio C Hamano | 06 February 2006, 07:00:41 UTC | 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 | Junio C Hamano | 06 February 2006, 06:25:00 UTC | 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 | Linus Torvalds | 06 February 2006, 05:41:47 UTC | 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 | Ryan Anderson | 06 February 2006, 01:13:52 UTC | 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 | Junio C Hamano | 05 February 2006, 06:27:29 UTC | 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 | Mark Wooding | 03 February 2006, 20:27:04 UTC | 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 | Junio C Hamano | 04 February 2006, 07:50:55 UTC | 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 | Mark Wooding | 01 February 2006, 11:44:39 UTC | 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 | Mark Wooding | 01 February 2006, 11:44:37 UTC | 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 | Mark Wooding | 01 February 2006, 11:44:35 UTC | 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 | Mark Wooding | 01 February 2006, 11:44:28 UTC | 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 | Junio C Hamano | 06 February 2006, 00:42:49 UTC | 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 | Junio C Hamano | 06 February 2006, 00:37:18 UTC | 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 | Junio C Hamano | 06 February 2006, 00:36:12 UTC | 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 | Linus Torvalds | 05 February 2006, 19:42:09 UTC | 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 | Peter Eriksen | 04 February 2006, 22:54:01 UTC | 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 | Linus Torvalds | 05 February 2006, 19:58:34 UTC | 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 | Junio C Hamano | 05 February 2006, 06:10:32 UTC | 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 | Junio C Hamano | 04 February 2006, 07:52:20 UTC | 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 | Jason Riedy | 04 February 2006, 06:50:57 UTC | 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 | Mark Wooding | 03 February 2006, 20:27:02 UTC | 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 | Junio C Hamano | 04 February 2006, 03:41:33 UTC | 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 | Junio C Hamano | 03 February 2006, 07:48:36 UTC | 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 | Junio C Hamano | 01 February 2006, 02:15:51 UTC | whitespace cleanup. Signed-off-by: Junio C Hamano <junkio@cox.net> | 03 February 2006, 01:54:24 UTC |
46dc941 | Junio C Hamano | 02 February 2006, 23:17:42 UTC | 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 | Junio C Hamano | 31 January 2006, 06:33:15 UTC | 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 | Junio C Hamano | 03 February 2006, 01:43:47 UTC | 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 | Junio C Hamano | 31 January 2006, 00:34:29 UTC | combine-diff: add a bit more comments. Signed-off-by: Junio C Hamano <junkio@cox.net> | 03 February 2006, 01:53:25 UTC |
30d08b3 | Ryan Anderson | 02 February 2006, 16:56:06 UTC | 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 | Ryan Anderson | 02 February 2006, 16:56:06 UTC | 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 | Junio C Hamano | 03 February 2006, 01:52:19 UTC | 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 | Fredrik Kuivinen | 02 February 2006, 11:43:35 UTC | 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 | Fredrik Kuivinen | 02 February 2006, 11:43:20 UTC | 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 | Junio C Hamano | 02 February 2006, 19:28:38 UTC | 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 | Junio C Hamano | 02 February 2006, 13:21:14 UTC | 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 | Junio C Hamano | 02 February 2006, 09:28:08 UTC | 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 | Junio C Hamano | 02 February 2006, 08:12:55 UTC | 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 | Junio C Hamano | 02 February 2006, 07:29:03 UTC | 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 | Petr Baudis | 31 January 2006, 23:40:33 UTC | 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 | Junio C Hamano | 29 January 2006, 23:24:42 UTC | 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 | Junio C Hamano | 01 February 2006, 02:03:37 UTC | 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 | Sasha Khapyorsky | 01 February 2006, 15:53:31 UTC | 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 | Nick Hengeveld | 01 February 2006, 02:00:37 UTC | 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 | Eric Wong | 30 January 2006, 00:28:02 UTC | 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 | Eric Wong | 30 January 2006, 00:26:40 UTC | 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 | Daniel Barkalow | 31 January 2006, 05:36:24 UTC | 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 | Nick Hengeveld | 31 January 2006, 19:06:55 UTC | 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 | Linus Torvalds | 31 January 2006, 22:13:40 UTC | 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 | Linus Torvalds | 31 January 2006, 22:10:56 UTC | 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 | Junio C Hamano | 31 January 2006, 06:41:00 UTC | Merge branches 'bf/doc' and 'db/tartree' | 31 January 2006, 06:41:00 UTC |
807f900 | Junio C Hamano | 31 January 2006, 05:01:25 UTC | documentation: cvs migration - typofix. Signed-off-by: Junio C Hamano <junkio@cox.net> | 31 January 2006, 05:01:25 UTC |
c3f9281 | Daniel Barkalow | 29 January 2006, 19:05:20 UTC | 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 | Daniel Barkalow | 29 January 2006, 19:04:59 UTC | 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 | J. Bruce Fields | 29 January 2006, 04:31:47 UTC | 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 | Martin Langhoff | 30 January 2006, 06:34:15 UTC | 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 | Martin Langhoff | 30 January 2006, 06:12:12 UTC | 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 | Martin Langhoff | 30 January 2006, 06:12:41 UTC | 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 | Junio C Hamano | 30 January 2006, 01:56:45 UTC | Merge fixes up to GIT 1.1.6 | 30 January 2006, 01:56:45 UTC |
8fedb83 | Junio C Hamano | 30 January 2006, 01:55:20 UTC | GIT 1.1.6 | 30 January 2006, 01:55:20 UTC |
f0fff36 | J. Bruce Fields | 30 January 2006, 01:40:50 UTC | git push -f documentation Signed-off-by: Junio C Hamano <junkio@cox.net> | 30 January 2006, 01:54:43 UTC |
075dd8e | Fredrik Kuivinen | 29 January 2006, 14:02:51 UTC | 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 | Fredrik Kuivinen | 29 January 2006, 12:16:08 UTC | 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 | Junio C Hamano | 29 January 2006, 22:52:16 UTC | [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 | Junio C Hamano | 28 January 2006, 10:19:22 UTC | Documentation: diff -c/--cc Signed-off-by: Junio C Hamano <junkio@cox.net> | 28 January 2006, 10:26:30 UTC |
939aabb | Junio C Hamano | 28 January 2006, 10:09:08 UTC | 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 | Junio C Hamano | 28 January 2006, 08:16:09 UTC | Merge lt/revlist,jc/diff,jc/revparse,jc/abbrev | 28 January 2006, 08:16:09 UTC |
b33aba5 | Junio C Hamano | 27 January 2006, 01:24:52 UTC | 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 | Junio C Hamano | 27 January 2006, 10:19:51 UTC | 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 | Junio C Hamano | 27 January 2006, 10:17:19 UTC | 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 | Junio C Hamano | 27 January 2006, 09:54:59 UTC | 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 | Junio C Hamano | 27 January 2006, 01:02:07 UTC | 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 | Junio C Hamano | 26 January 2006, 08:48:19 UTC | 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 | Junio C Hamano | 25 January 2006, 10:37:40 UTC | 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 | Junio C Hamano | 25 January 2006, 09:35:38 UTC | 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 | Junio C Hamano | 25 January 2006, 09:03:18 UTC | 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 | Junio C Hamano | 27 January 2006, 09:39:24 UTC | 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 | Linus Torvalds | 18 January 2006, 22:47:30 UTC | 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 | Junio C Hamano | 28 January 2006, 08:03:38 UTC | 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 | Junio C Hamano | 26 January 2006, 11:53:01 UTC | 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 | Junio C Hamano | 25 January 2006, 22:26:22 UTC | 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 | Junio C Hamano | 25 January 2006, 21:11:38 UTC | 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 | Junio C Hamano | 25 January 2006, 19:55:40 UTC | 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 | Junio C Hamano | 25 January 2006, 11:34:10 UTC | 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 | Junio C Hamano | 24 January 2006, 09:22:04 UTC | 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 | Junio C Hamano | 24 January 2006, 09:22:04 UTC | 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 | Junio C Hamano | 28 January 2006, 07:05:05 UTC | 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 | Junio C Hamano | 27 January 2006, 22:50:10 UTC | 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 | Junio C Hamano | 27 January 2006, 22:49:30 UTC | GIT 1.1.5 Signed-off-by: Junio C Hamano <junkio@cox.net> | 27 January 2006, 22:49:30 UTC |
ca18205 | Junio C Hamano | 27 January 2006, 22:46:10 UTC | GIT 1.0.13 Signed-off-by: Junio C Hamano <junkio@cox.net> | 27 January 2006, 22:46:10 UTC |
1ecc18e | Junio C Hamano | 27 January 2006, 22:44:07 UTC | 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 | Alecs King | 26 January 2006, 18:04:30 UTC | 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 | Uwe Zeisberger | 26 January 2006, 16:39:27 UTC | 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 | Uwe Zeisberger | 26 January 2006, 11:26:15 UTC | 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 | Uwe Zeisberger | 26 January 2006, 11:25:44 UTC | 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 | Junio C Hamano | 27 January 2006, 02:11:06 UTC | 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 | Daniel Barkalow | 26 January 2006, 06:13:36 UTC | 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 | Jason Riedy | 25 January 2006, 20:38:36 UTC | 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 | Jason Riedy | 25 January 2006, 20:37:51 UTC | 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 |