summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* recur vs recursive: help testing without touching too many stuff.Junio C Hamano2006-07-134-12/+36
| | | | | | | | During git-merge-recur development, you could set an environment variable GIT_USE_RECUR_FOR_RECURSIVE to use WIP recur in place of the recursive strategy. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Status update on merge-recursive in CJohannes Schindelin2006-07-1310-52/+1773
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just an update for people being interested. Alex and me were busy with that project for a few days now. While it has progressed nicely, there are quite a couple TODOs in merge-recursive.c, just search for "TODO". For impatient people: yes, it passes all the tests, and yes, according to the evil test Alex did, it is faster than the Python script. But no, it is not yet finished. Biggest points are: - there are still three external calls - in the end, it should not be necessary to write the index more than once (just before exiting) - a lot of things can be refactored to make the code easier and shorter BTW we cannot just plug in git-merge-tree yet, because git-merge-tree does not handle renames at all. This patch is meant for testing, and as such, - it compile the program to git-merge-recur - it adjusts the scripts and tests to use git-merge-recur instead of git-merge-recursive - it provides "TEST", a script to execute the tests regarding -recursive - it inlines the changes to read-cache.c (read_cache_from(), discard_cache() and refresh_cache_entry()) Brought to you by Alex Riesen and Dscho Signed-off-by: Junio C Hamano <junkio@cox.net>
* gitweb.css: Use monospace fonts for commits and tree-diff.Luben Tuikov2006-07-131-1/+8
| | | | | | | | Use monospace fonts for the commit header, commit message, and tree-diff. This helps viewing commit logs with ASCII art. Signed-off-by: Luben Tuikov <ltuikov@yahoo.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Do not use perl in git-commit.shAlex Riesen2006-07-131-19/+13
| | | | | | | | | | | | git-commit.sh has the only one place where perl is used and there it can quite trivially be done in sh. git-ls-files without "-z" produces quoted output, even if is different from that produced by perl code it is good enough. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* diff: Support 256 colorsTimo Hirvonen2006-07-131-6/+18
| | | | | | | | Add support for more than 8 colors. Colors can be specified as numbers -1..255. -1 is same as "normal". Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* diff: Support both attributes and colorsTimo Hirvonen2006-07-131-57/+107
| | | | | | | | | | | | | | | | Make it possible to set both colors and a attribute for diff colors. Background colors are supported too. Syntax is now: [attr] [fg [bg]] [fg [bg]] [attr] Empty value is same as "normal normal", ie use default colors. The new syntax is backwards compatible. Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Documentation about exclude/ignore filesMatthias Lederhofer2006-07-132-5/+7
| | | | | | | | | Use .git/info/exclude in the example in git-ls-files.txt, instead of .git/ignore, and update the list of commands looking at .git/info/exclude in repository-layout.txt. Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* daemon: new option --detach to run git-daemon in backgroundMatthias Lederhofer2006-07-131-1/+28
| | | | | Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* daemon: new option --pid-file=<path> to store the pidMatthias Lederhofer2006-07-131-0/+17
| | | | | Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* upload-pack: ignore write errors to stderrMatthias Lederhofer2006-07-131-0/+4
| | | | | Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* daemon: if one of the standard fds is missing open it to /dev/nullMatthias Lederhofer2006-07-131-0/+14
| | | | | Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* daemon: use a custom die routine with syslogMatthias Lederhofer2006-07-131-8/+11
| | | | | | | | Removed the git-daemon prefix from die() because no other call to die does this. Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Documentation: Fix ssh://[user@]host.xz URLJunio C Hamano2006-07-131-3/+3
| | | | | | | | | Earlier commit c3f17061 broke asciidoc markup. Noticed by Alp Toker with a fix, but fixed up in a way with smaller formatting impact. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Adjust t4013 tests to corrected format-patch.Junio C Hamano2006-07-136-0/+8
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* format-patch: Generate a newline between the subject header and the message bodyRobert Shearman2006-07-131-2/+9
| | | | | | | | | | format-patch previously didn't generate a newline after a subject. This caused the diffstat to not be displayed in messages with only one line for the commit message. This patch fixes this by adding a newline after the headers if a body hasn't been added. Signed-off-by: Robert Shearman <rob@codeweavers.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* t4013 diff format tests updateJunio C Hamano2006-07-1342-104/+161
| | | | | | | | | | This changes one test commit in the sequence to have more than one lines of commit log. A few output formats (--pretty=email aka format-patch and --pretty=oneline) need to behave differently on single and multi-line log, and this change will help catching breakages. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Display help for Git mode after pressing `h' or `?' in *git-status*Jakub Narebski2006-07-131-0/+7
| | | | | | | | Add bindings for "h" and "?" in git-status-mode to display help about the mode, including keymap via (describe-function 'git-status-mode), like in PCL-CVS. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Wrap long lines in docstrings in contrib/emacs/git.elJakub Narebski2006-07-131-3/+7
| | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'ml/trace'Junio C Hamano2006-07-126-0/+70
|\ | | | | | | | | | | | | * ml/trace: test-lib: unset GIT_TRACE GIT_TRACE: fix a mixed declarations and code warning GIT_TRACE: show which built-in/external commands are executed
| * test-lib: unset GIT_TRACEJunio C Hamano2006-07-121-0/+1
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * GIT_TRACE: fix a mixed declarations and code warningTimo Hirvonen2006-07-091-1/+1
| | | | | | | | | | Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * GIT_TRACE: show which built-in/external commands are executedMatthias Lederhofer2006-07-095-0/+69
| | | | | | | | | | | | | | | | | | | | | | With the environment variable GIT_TRACE set git will show - alias expansion - built-in command execution - external command execution on stderr. Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-repack: avoid redirecting stderr into git-pack-objectsJunio C Hamano2006-07-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | We are trying to catch error condition of git-rev-list and cause the downstream pack-objects to barf, but if you run rev-list with anything that mucks with its stderr (such as GIT_TRACE), any stderr output would cause the pipeline to fail. [jc: originally from Matthias Lederhofer, with a reworded error message.] Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Fix grammatical error in git-revertJunio C Hamano2006-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | We always talk about "commit xyz". We never talk about "xyz commit", except when we end up talking about a commit as a branch head (notably, I would say "the HEAD commit", or possibly "the top-of-master commit", but here $commit is a SHA1 name, not anything else). Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'js/merge-base'Junio C Hamano2006-07-122-190/+135
|\ \ | | | | | | | | | | | | | | | * js/merge-base: Additional merge-base tests (revised) merge-base: update the clean-up postprocessing
| * | Additional merge-base tests (revised)A Large Angry SCM2006-07-091-0/+45
| | | | | | | | | | | | Signed-off-by: A Large Angry SCM <gitzilla@gmail.com>
| * | merge-base: update the clean-up postprocessingJunio C Hamano2006-07-091-190/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the "contaminate the well even more" approach taken in the current merge-base postprosessing code. Instead, when there are more than one merge-base results, we compute the merge-base between them and see if one is a fast-forward of the other, in which case the ancestor is removed from the result. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'lt/prune'Junio C Hamano2006-07-125-48/+266
|\ \ \ | | | | | | | | | | | | | | | | * lt/prune: builtin "git prune"
| * | | builtin "git prune"Linus Torvalds2006-07-095-48/+266
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This actually removes the objects to be pruned, unless you specify "-n" (at which point it will just tell you which files it would prune). This doesn't do the pack-file pruning that the shell-script used to do, but if somebody really wants to, they could add it easily enough. I wonder how useful it is, though, considering that "git repack -a -d" is just a lot more efficient and generates a better end result. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'lt/merge-tree'Junio C Hamano2006-07-125-16/+378
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * lt/merge-tree: Improved three-way blob merging code Prepare "git-merge-tree" for future work xdiff: generate "anti-diffs" aka what is common to two files
| * | | Improved three-way blob merging codeLinus Torvalds2006-06-283-1/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fleshes out the code that generates a three-way merge of a set of blobs. It still actually does the three-way merge using an external executable (ie just calling "merge"), but the interfaces have been cleaned up a lot and are now fully based on the 'mmfile_t' interface, so if libxdiff were to ever grow a compatible three-way-merge, it could probably be directly plugged in. It also uses the previous XDL_EMIT_COMMON functionality extension to libxdiff to generate a made-up base file for the merge for the case where no base file previously existed. This should be equivalent to what we currently do in git-merge-one-file.sh: diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add except it should be much simpler and can be done using the direct libxdiff interfaces. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Prepare "git-merge-tree" for future workLinus Torvalds2006-06-281-15/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes how "git-merge-tree" works in two ways: - instead of printing things out as we walk the trees, we save the results in memory. - when we've walked the tree fully, we print out the results in a more explicit way, describing the data. This is basically preparatory work for extending the git-merge-tree functionality in interesting directions. In particular, git-merge-tree is also how you would create a diff between two trees _without_ necessarily creating the merge commit itself. In other words, if you were to just wonder what another branch adds, you should be able to (eventually) just do git merge-tree -p $base HEAD $otherbranch to generate a diff of what the merge would look like. The current merge tree already basically has all the smarts for this, and the explanation of the results just means that hopefully somebody else than me could do the boring work. (You'd basically be able to do the above diff by just changing the printout format for the explanation, and making the "changed in both" first do a three-way merge before it diffs the result). The other thing that the in-memory format allows is rename detection (which the current code does not do). That's the basic reason why we don't want to just explain the differences as we go along - because we want to be able to look at the _other_ differences to see whether the reason an entry got deleted in either branch was perhaps because it got added in another place.. Rename detection should be a fairly trivial pass in between the tree diffing and the explanation. In the meantime, this doesn't actually do anything new, it just outputs the information in a more verbose manner. For an example merge, commit 5ab2c0a47574c92f92ea3709b23ca35d96319edd in the git tree works well and shows renames, along with true removals and additions and files that got changed in both branches. To see that as a tree merge, do: git-merge-tree 64e86c57 c5c23745 928e47e3 where the two last ones are the tips that got merged, and the first one is the merge base. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | xdiff: generate "anti-diffs" aka what is common to two filesLinus Torvalds2006-06-282-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fairly trivial patch adds a new XDL_EMIT_xxx flag to tell libxdiff that we don't want to generate the _diff_ between two files, we want to see the lines that are _common_ to two files. So when you set XDL_EMIT_COMMON, xdl_diff() will do everything exactly like it used to do, but the output records it generates just contain the lines that aren't part of the diff. This is for doing things like generating the common base case for a file that was added in both branches. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | fmt-merge-msg fixJunio C Hamano2006-07-121-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new C version mistranslated the original Perl version in the case to pull from the HEAD. This made it to say nonsense like this: Merge commit ...url... of HEAD * HEAD: ... Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Make command invocations go through the git wrapperAlp Toker2006-07-121-33/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes invocations of core git commands go through the 'git' binary itself, which improves readability and might help system administrators lock down their CGI environment for security. Signed-off-by: Alp Toker <alp@atoker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Include a site name in page titlesAlp Toker2006-07-111-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps users tell one 'git' bookmark apart from the other in their browser and improves the indexing of gitweb sites in Web search engines. The title defaults to the SERVER_NAME environment variable, often given by the webserver. Signed-off-by: Alp Toker <alp@atoker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Send XHTML as 'application/xhtml+xml' where possibleAlp Toker2006-07-111-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "The 'text/html' media type [RFC2854] is primarily for HTML, not for XHTML. In general, this media type is NOT suitable for XHTML." This patch makes gitweb use content negotiation to conservatively send pages as Content-Type 'application/xhtml+xml' when the user agent explicitly claims to support it. It falls back to 'text/html' even if the user agent appears to implicitly support 'application/xhtml+xml' due to a '*/*' glob, working around an insidious bug in Internet Explorer where sending the correct media type prevents the page from being displayed. Signed-off-by: Alp Toker <alp@atoker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | git-fetch: fix a bashism (==)Eric Wong2006-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Make the unpacked object header functions static to sha1_file.cLinus Torvalds2006-07-112-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Nobody else uses them, and I'm going to start changing them. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | git-send-email: Remove redundant Reply-To headerAlp Toker2006-07-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no sense in duplicating the sender address in Reply-To as it's already provided in the From header. Signed-off-by: Alp Toker <alp@atoker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | typofix (git-name-rev documentation)Alp Toker2006-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Alp Toker <alp@atoker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Mention the [user@] part in documentation of ssh:// urls.Yakov Lerner2006-07-111-3/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Yakov Lerner <iler.ml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | tests: Set EDITOR=: and VISUAL=: globallyEric Wong2006-07-114-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way we don't have to remember to set it for each test; and if we forget, we won't cause interactive editors to be spawned for non-interactive tests. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Log ref changes made by git-fetch and git-pull.Shawn Pearce2006-07-102-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When git-fetch updates a reference record in the associated reflog what type of update took place and who caused it (git-fetch or git-pull, by invoking git-fetch). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Record the type of commit operation in the reflog.Shawn Pearce2006-07-102-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If committing a merge (.git/MERGE_HEAD exists), an initial tree (no HEAD) or using --amend to amend the prior commit then denote the subtype of commit in the reflog. This helps to distinguish amended or merge commits from normal commits. In the case of --amend the prior sha1 is probably the commit which is being thrown away in favor of the new commit. Since it is likely that the old commit doesn't have any ref pointing to it anymore it can be interesting to know why that the commit was replaced and orphaned. In the case of a merge the prior sha1 is probably the first parent of the new merge commit. Consequently having its prior sha1 in the reflog is slightly less interesting but its still informative to know the commit was the result of a merge which had to be completed by hand. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Allow user.name and user.email to drive reflog entry.Shawn Pearce2006-07-102-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently calling setup_ident() after git_config causes the user.name and user.email values read from the config file to be replaced with the data obtained from the host. This means that users who have setup their email address in user.email will instead be writing reflog entries with their hostname. Moving setup_ident() to before git_config in update-ref resolves this ordering problem. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Fix linking for not-so-clever linkers.Johannes Schindelin2006-07-102-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On one of my systems, the linker is not intelligent enough to link with pager.o (in libgit.a) when only the variable pager_in_use is needed. The consequence is that the linker complains about an undefined variable. So, put the variable into environment.o, where it is linked always. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | git-rev-list: add documentation for --parents, --no-mergesMatthias Lederhofer2006-07-101-0/+6
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'jc/show-merge'Junio C Hamano2006-07-101-2/+51
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * jc/show-merge: git log -p --merge [[--] paths...]
| * | | | git log -p --merge [[--] paths...]Junio C Hamano2006-07-071-2/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds Linus's wish, "--merge" flag, which makes the above expand to a rough equivalent to: git log -p HEAD MERGE_HEAD ^$(git-merge-base HEAD MERGE_HEAD) \ -- $(git-ls-files -u [paths...] | cut -f2 | uniq) Signed-off-by: Junio C Hamano <junkio@cox.net>