summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-02-07combine-diff: do not punt on removed or added files.Junio C Hamano
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>
2006-02-06gitk: Use git-diff-tree --cc for showing the diffs for mergesPaul Mackerras
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>
2006-02-06gitk: Add braces around if expressionsPaul Mackerras
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>
2006-02-06combine-diff: show mode changes as well.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-06combine-diff: do not send NULL to printfJunio C Hamano
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>
2006-02-06core-tutorial: adjust to recent reality.Junio C Hamano
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>
2006-02-06git-diff: do not fall back on --cc when -[123], --ours etc. are given.Junio C Hamano
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>
2006-02-06Merge branch 'jc/diff'Junio C Hamano
* jc/diff: git-diff-tree --stdin: show all parents. combine-diff: remove misguided --show-empty hack.
2006-02-06Merge branches 'lt/show' and 'lt/revlist'Junio C Hamano
* lt/show: git-show * lt/revlist: rev-parse lstat() workaround cleanup.
2006-02-06Merge branches 'jc/daemon' and 'mw/http'Junio C Hamano
* 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().
2006-02-06git-diff-tree --stdin: show all parents.Junio C Hamano
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>
2006-02-06combine-diff: remove misguided --show-empty hack.Junio C Hamano
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>
2006-02-06rev-parse lstat() workaround cleanup.Linus Torvalds
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>
2006-02-06git-send-email: Fully implement --quiet and document it.Ryan Anderson
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>
2006-02-06daemon: extend user-relative path notation.Junio C Hamano
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>
2006-02-06daemon: Set SO_REUSEADDR on listening sockets.Mark Wooding
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>
2006-02-06daemon: do not forbid user relative paths unconditionally under --base-pathJunio C Hamano
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>
2006-02-06http-fetch: Tidy control flow in process_alternate_responseMark Wooding
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>
2006-02-06http: Turn on verbose Curl messages if GIT_CURL_VERBOSE set in environmentMark Wooding
Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-06http-fetch: Fix message reporting rename of object file.Mark Wooding
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>
2006-02-06http-fetch: Fix object list corruption in fill_active_slots().Mark Wooding
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>
2006-02-06git-showJunio C Hamano
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>
2006-02-06git-diff: use --cc instead of -p.Junio C Hamano
The --cc output is much nicer when dealing with merges, so use it by default. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-06diff-index: make --cc a synonym for -p for now.Junio C Hamano
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>
2006-02-05diff-tree --always flagLinus Torvalds
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>
2006-02-05Use adler32() from zlib instead of defining our own.Peter Eriksen
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>
2006-02-05Fix git-rev-parse over-eager errorsLinus Torvalds
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>
2006-02-05Do not fall back on vi on dumb terminals.Junio C Hamano
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>
2006-02-04Merge branches 'jc/sha1', 'jc/diff' and 'jc/ws'Junio C Hamano
* 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.
2006-02-04Use sha1_file.c's mkdir-like routine in apply.c.Jason Riedy
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>
2006-02-04daemon: Provide missing argument for logerror() call.Mark Wooding
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>
2006-02-04git-merge: Properly quote $merge_msg variable.Junio C Hamano
Otherwise it would go though shell expansion... Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-03get_sha1_1: allow octopus^12 to be properly parsed.Junio C Hamano
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>
2006-02-03whitespace cleanup.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-03combine-diff: finishing touches to git-diff-tree --ccJunio C Hamano
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>
2006-02-03combine-diff: cleanup.Junio C Hamano
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>
2006-02-03combine-diff: show parent line numbers as well.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-03combine-diff: add a bit more comments.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-03git-send-email: Add --quiet to reduce some of the chatter when sending emails.Ryan Anderson
Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-02-03Provide a more meaningful initial "From " line when using --compose in ↵Ryan Anderson
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>
2006-02-03commit.c: "Merge" fix in pretty_print_commit.Junio C Hamano
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>
2006-02-02merge-recursive: Speed up commit graph constructionFredrik Kuivinen
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>
2006-02-02merge-recursive: Make use of provided basesFredrik Kuivinen
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>
2006-02-02Documentation: git-diff-tree --cc also omits empty commitsJunio C Hamano
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>
2006-02-02combine-diff: fix placement of deletion.Junio C Hamano
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>
2006-02-02combine-diff: add safety check to --cc.Junio C Hamano
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>
2006-02-02combine-diff: update --cc "uninteresting hunks" logic.Junio C Hamano
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>
2006-02-02combine-diff: reuse diff from the same blob.Junio C Hamano
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>
2006-02-02Allow diff and index commands to be interruptedPetr Baudis
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>
2006-02-02rev-list: omit duplicated parents.Junio C Hamano
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>