d416df8 | Junio C Hamano | 10 February 2006, 10:30:52 UTC | combine-diff: Record diff status a bit more faithfully This shows "new file mode XXXX" and "deleted file mode XXXX" lines like two-way diff-patch output does, by checking the status from each parent. The diff-raw output for combined diff is made a bit uglier by showing diff status letters with each parent. While most of the case you would see "MM" in the output, an Evil Merge that touches a path that was added by inheriting from one parent is possible and it would be shown like these: $ git-diff-tree --abbrev -c HEAD 2d7ca89675eb8888b0b88a91102f096d4471f09f ::000000 000000 100644 0000000... 0000000... 31dd686... AA b ::000000 100644 100644 0000000... 6c884ae... c6d4fa8... AM d ::100644 100644 100644 4f7cbe7... f8c295c... 19d5d80... RR e Signed-off-by: Junio C Hamano <junkio@cox.net> | 10 February 2006, 10:50:53 UTC |
297a1aa | Junio C Hamano | 10 February 2006, 09:51:12 UTC | find_unique_abbrev() simplification. Earlier it did not grok the 0{40} SHA1 very well, but what it needed to do was to find the shortest 0{N} that is not used as a valid object name to be consistent with the way names of valid objects are abbreviated. This makes some users simpler. Signed-off-by: Junio C Hamano <junkio@cox.net> | 10 February 2006, 09:51:12 UTC |
0a79807 | Junio C Hamano | 09 February 2006, 23:23:06 UTC | combine-diff: move formatting logic to show_combined_diff() This way, diff-files can make use of it. Also implement the full suite of what diff_flush_raw() supports just for consistency. With this, 'diff-tree -c -r --name-status' would show what is expected. There is no way to get the historical output (useful for debugging and low-level Plumbing work) anymore, so tentatively it makes '-m' to mean "do not combine and show individual diffs with parents". diff-files matches diff-tree to produce raw output for -c. For textual combined diff, use -p -c. Signed-off-by: Junio C Hamano <junkio@cox.net> | 09 February 2006, 23:23:06 UTC |
5b23683 | Junio C Hamano | 09 February 2006, 22:35:19 UTC | combined-diff: use diffcore before intersecting paths. This is needed to make "diff-tree -c -M" to work semi-sensibly. Otherwise rename detection, pickaxe and friends would never be invoked. Signed-off-by: Junio C Hamano <junkio@cox.net> | 09 February 2006, 22:35:19 UTC |
ee63802 | Linus Torvalds | 09 February 2006, 18:30:28 UTC | diff-tree -c raw output NOTE! This makes "-c" be the default, which effectively means that merges are never ignored any more, and "-m" is a no-op. So it changes semantics. I would also like to make "--cc" the default if you do patches, but didn't actually do that. The raw output format is not wonderfully pretty, but it's distinguishable from a "normal patch" in that a normal patch with just one parent has just one colon at the beginning, while a multi-parent raw diff has <n> colons for <n> parents. So now, in the kernel, when you do git-diff-tree cce0cac125623f9b68f25dd1350f6d616220a8dd (to see the manual ARM merge that had a conflict in arch/arm/Kconfig), you get cce0cac125623f9b68f25dd1350f6d616220a8dd ::100644 100644 100644 4a63a8e2e45247a11c068c6ed66c6e7aba29ddd9 77eee38762d69d3de95ae45dd9278df9b8225e2c 2f61726d2f4b636f6e66696700dbf71a59dad287 arch/arm/Kconfig ie you see two colons (two parents), then three modes (parent modes followed by result mode), then three sha1s (parent sha1s followed by result sha1). Which is pretty close to the normal raw diff output. Cool/stupid exercise: $ git-whatchanged | grep '^::' | cut -f2- | sort | uniq -c | sort -n | less -S will show which files have needed the most file-level merge conflict resolution. Useful? Probably not. But kind of interesting. For the kernel, it's .... 10 arch/ia64/Kconfig 11 drivers/scsi/Kconfig 12 drivers/net/Makefile 17 include/linux/libata.h 18 include/linux/pci_ids.h 23 drivers/net/Kconfig 24 drivers/scsi/libata-scsi.c 28 drivers/scsi/libata-core.c 43 MAINTAINERS Signed-off-by: Junio C Hamano <junkio@cox.net> | 09 February 2006, 19:46:05 UTC |
d19e06f | Andreas Ericsson | 07 February 2006, 17:21:02 UTC | .gitignore git-rerere and config.mak Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 21:19:51 UTC |
deb989b | Linus Torvalds | 07 February 2006, 18:26:41 UTC | Fix "git diff a..b" breakage The "--cc" implies "-p", but without the recursive part. Linus Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 21:19:50 UTC |
4e783b4 | Petr Baudis | 07 February 2006, 11:47:47 UTC | Basic documentation for git-show Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 21:19:42 UTC |
3904848 | Petr Baudis | 07 February 2006, 11:47:44 UTC | Document git-diff-tree --always Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 21:19:40 UTC |
53f3138 | Mark Wooding | 07 February 2006, 10:07:39 UTC | http-fetch: Abort requests for objects which arrived in packs In fetch_object, there's a call to release an object request if the object mysteriously arrived, say in a pack. Unfortunately, the fetch attempt for this object might already be in progress, and we'll leak the descriptor. Instead, try to tidy away the request. Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 10:13:02 UTC |
66f04f3 | Andreas Ericsson | 07 February 2006, 09:37:54 UTC | format-patch: Remove last vestiges of --mbox option Don't mention it in docs or --help output. Remove mbox, date and author variables from git-format-patch.sh. Use DESCRIPTION text from man-page to update LONG_USAGE output. It's a bit silly to have two texts saying the same thing in different words, and I'm too lazy to update both. Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 10:09:55 UTC |
90768da | Junio C Hamano | 07 February 2006, 09:19:49 UTC | Merge git://git.kernel.org/pub/scm/gitk/gitk * git://git.kernel.org/pub/scm/gitk/gitk: gitk: Use git-diff-tree --cc for showing the diffs for merges gitk: Add braces around if expressions | 07 February 2006, 09:19:49 UTC |
5a798fb | Junio C Hamano | 06 February 2006, 00:08:01 UTC | git-commit: finishing touches. Introduce --only flag to allow the new "partial commit" semantics when paths are specified. The default is still the traditional --include semantics. Once peoples' fingers and scripts that want the traditional behaviour are updated to explicitly say --include, we could change it to either default to --only, or refuse to operate without either --only/--include when paths are specified. This also fixes a couple of bugs in the previous round. Namely: - forgot to save/restore index in some cases. - forgot to use the temporary index to show status when '--only paths...' semantics was used. - --author did not take precedence when reusing an existing commit. Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 07:20:32 UTC |
130fcca | Junio C Hamano | 05 February 2006, 08:07:44 UTC | git-commit: revamp the git-commit semantics. - "git commit" without _any_ parameter keeps the traditional behaviour. It commits the current index. We commit the whole index even when this form is run from a subdirectory. - "git commit --include paths..." (or "git commit -i paths...") is equivalent to: git update-index --remove paths... git commit - "git commit paths..." acquires a new semantics. This is an incompatible change that needs user training, which I am still a bit reluctant to swallow, but enough people seem to have complained that it is confusing to them. It 1. refuses to run if $GIT_DIR/MERGE_HEAD exists, and reminds trained git users that the traditional semantics now needs -i flag. 2. refuses to run if named paths... are different in HEAD and the index (ditto about reminding). Added paths are OK. 3. reads HEAD commit into a temporary index file. 4. updates named paths... from the working tree in this temporary index. 5. does the same updates of the paths... from the working tree to the real index. 6. makes a commit using the temporary index that has the current HEAD as the parent, and updates the HEAD with this new commit. - "git commit --all" can run from a subdirectory, but it updates the index with all the modified files and does a whole tree commit. - In all cases, when the command decides not to create a new commit, the index is left as it was before the command is run. This means that the two "git diff" in the following sequence: $ git diff $ git commit -a $ git diff would show the same diff if you abort the commit process by making the commit log message empty. This commit also introduces much requested --author option. $ git commit --author 'A U Thor <author@example.com>' Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 07:20:32 UTC |
8389b52 | Junio C Hamano | 29 January 2006, 07:15:24 UTC | git-rerere: reuse recorded resolve. In a workflow that employs relatively long lived topic branches, the developer sometimes needs to resolve the same conflict over and over again until the topic branches are done (either merged to the "release" branch, or sent out and accepted upstream). This commit introduces a new command, "git rerere", to help this process by recording the conflicted automerge results and corresponding hand-resolve results on the initial manual merge, and later by noticing the same conflicted automerge and applying the previously recorded hand resolution using three-way merge. Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:53:11 UTC |
1cb3038 | Junio C Hamano | 04 February 2006, 03:20:16 UTC | fmt-merge-msg: show summary of what is merged. In addition to the branch names, populate the log message with one-line description from actual commits that are being merged. This was prompted by Len's 12-way octopus. You need to have 'merge.summary' in the configuration file to enable it: $ git repo-config merge.summary yes Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:52:08 UTC |
1b1fdf8 | Junio C Hamano | 04 February 2006, 06:04:14 UTC | read-tree --aggressive A new flag --aggressive resolves what we traditionally resolved with external git-merge-one-file inside index while read-tree 3-way merge works. git-merge-octopus and git-merge-resolve use this flag before running git-merge-index with git-merge-one-file. Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:43:27 UTC |
8bc5c04 | Junio C Hamano | 07 February 2006, 05:35:25 UTC | [PATCH] mailinfo: reset CTE after each multipart If the first part uses quoted-printable to protect iso8859-1 name in the commit log, and the second part was plain ascii text patchfile without even Content-Transfer-Encoding subheader, we incorrectly tried to decode the patch as quoted printable. Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:37:53 UTC |
cc55aae | J. Bruce Fields | 06 February 2006, 00:42:27 UTC | Docs: minor git-push copyediting Minor git-push copyediting Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:14:57 UTC |
85a97d4 | J. Bruce Fields | 05 February 2006, 23:29:49 UTC | Docs: move git url and remotes text to separate sections The sections on git urls and remotes files in the git-fetch, git-pull, and git-push manpages seem long enough to be worth a manpage section of their own. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:14:56 UTC |
3598a30 | J. Bruce Fields | 05 February 2006, 22:43:47 UTC | Docs: split up pull-fetch-param.txt The push and pull man pages include a bunch of shared text from pull-fetch-param.txt. This simplifies maintenance somewhat, but there's actually quite a bit of text that applies only to one or the other. So, separate out the push- and pull/fetch-specific text into pull-fetch-param.txt and git-push.txt, then include the largest chunk of common stuff (the description of protocols and url's) from urls.txt. That cuts some irrelevant stuff from the man pages without making us duplicate too much. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 05:14:55 UTC |
4462731 | Junio C Hamano | 07 February 2006, 02:54:08 UTC | combine-diff: do not punt on removed or added files. When we remove a file, the parents' contents are all removed so it is not that interesting to show all of them, but the fact it was removed when all parents had it *is* unusual. When we add a file, similarly the fact it was added when no parent wanted it *is* unusual, and in addition the result matters, so show it. Signed-off-by: Junio C Hamano <junkio@cox.net> | 07 February 2006, 02:54:08 UTC |
b77b027 | Paul Mackerras | 06 February 2006, 22:13:52 UTC | gitk: Use git-diff-tree --cc for showing the diffs for merges This replaces a lot of code that used the result from several 2-way diffs to generate a combined diff for a merge. Now we just use git-diff-tree --cc and colorize the output a bit, which is a lot simpler, and has the enormous advantage that if the diff doesn't show quite what someone thinks it should show, I can deflect the blame to someone else. :) Signed-off-by: Paul Mackerras <paulus@samba.org> | 06 February 2006, 22:13:52 UTC |
418c4c7 | Paul Mackerras | 06 February 2006, 22:10:18 UTC | gitk: Add braces around if expressions Apparently this simplifies things for the parser/compiler and makes it go slightly faster (since without the braces, it potentially has to do two levels of substitutions rather than one). Signed-off-by: Paul Mackerras <paulus@samba.org> | 06 February 2006, 22:10:18 UTC |
2454c96 | Junio C Hamano | 06 February 2006, 20:53:07 UTC | combine-diff: show mode changes as well. Signed-off-by: Junio C Hamano <junkio@cox.net> | 06 February 2006, 21:06:49 UTC |
9843a1f | Junio C Hamano | 06 February 2006, 20:30:00 UTC | combine-diff: do not send NULL to printf When we run combined diff from working tree (diff-files --cc), we sent NULL to printf that is returned by find_unique_abbrev(). Signed-off-by: Junio C Hamano <junkio@cox.net> | 06 February 2006, 20:30:00 UTC |
960c702 | Junio C Hamano | 06 February 2006, 20:27:33 UTC | core-tutorial: adjust to recent reality. We still talked about HEAD symlinks but these days we use symrefs by default. Also 'failed/prevented' message is now gone from the merge output. Signed-off-by: Junio C Hamano <junkio@cox.net> | 06 February 2006, 20:27:33 UTC |
f22fd75 | Junio C Hamano | 06 February 2006, 19:17:56 UTC | git-diff: do not fall back on --cc when -[123], --ours etc. are given. These flags ask diff with a specific unmerged stage, so it should fall back on -p instead. Also when -c is given, we should not do --cc. Signed-off-by: Junio C Hamano <junkio@cox.net> | 06 February 2006, 19:22:07 UTC |
a2c641c | Junio C Hamano | 06 February 2006, 07:55:45 UTC | Merge branch 'jc/diff' * jc/diff: git-diff-tree --stdin: show all parents. combine-diff: remove misguided --show-empty hack. | 06 February 2006, 07:55:45 UTC |
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 |