summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-04-04Fix switching to a branch with D/F when current branch has file D.Libravatar Junio C Hamano1-1/+112
This loosens the over-eager verify_absent() check that gets upset to find directory D in the current working tree when switching to a branch that has a file there. The check needs to make sure that we do not lose precious working tree files as a result of removing directory D and replacing it with the file from the other branch, which is a tad expensive but this is a less common case. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-04Fix twoway_merge that passed d/f conflict marker to merged_entry().Libravatar Junio C Hamano1-2/+8
When switching from one tree to another, we should not send a marker that says "this file does not exist in the new tree -- I am a placeholder to tell you that, and not a real blob" down to merged_entry() as the result of the merge.
2007-04-04Fix read-tree --prefix=dir/.Libravatar Junio C Hamano1-0/+1
The existing code is not wrong per-se, but it started scanning the index from a location that does not match the tree being read, and wasted cycles. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-04unpack-trees: get rid of *indpos parameter.Libravatar Junio C Hamano2-9/+8
This variable keeps track of which entry in the original index the traversal is looking at, and belongs to the unpack_trees_options structure along with other traversal status information. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-04unpack_trees.c: pass unpack_trees_options structure to keep_entry() as well.Libravatar Junio C Hamano1-7/+7
Other decision functions, deleted_entry() and merged_entry() take one as their parameter, and this function should. I'll be introducing a separate index to build the result in, and am planning to pass it as the part of the structure. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-04add_cache_entry(): removal of file foo does not conflict with foo/barLibravatar Junio C Hamano1-9/+31
Similarly, removal of file foo/bar does not conflict with a file foo. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-04Merge branch 'jc/bisect'Libravatar Junio C Hamano4-20/+338
* jc/bisect: make the previous optimization work also on path-limited rev-list --bisect rev-list --bisect: Fix "halfway" optimization. t6004: add a bit more path optimization test. git-rev-list --bisect: optimization git-rev-list: add --bisect-vars option. t6002: minor spelling fix.
2007-04-04Merge branch 'fl/doc'Libravatar Junio C Hamano2-3/+37
* fl/doc: Documentation: unbreak user-manual. Documentation: Add version information to man pages Documentation: Replace @@GIT_VERSION@@ in documentation
2007-04-04Merge branch 'post1.5.1/blame.el'Libravatar Junio C Hamano1-46/+92
* post1.5.1/blame.el: git-blame.el: pick a set of random colors for each git-blame turn git-blame.el: separate git-blame-mode to ease maintenance
2007-04-04Merge branch 'post1.5.1/tcltk'Libravatar Junio C Hamano4-5/+78
* post1.5.1/tcltk: Optional Tck/Tk: ignore generated files. Eliminate checks of user-specified Tcl/Tk interpreter. Rewrite Tcl/Tk interpreter path for the GUI tools. Add --with-tcltk and --without-tcltk to configure. NO_TCLTK
2007-04-04Merge branch 'post1.5.1/p4'Libravatar Junio C Hamano2-7/+53
* post1.5.1/p4: Added correct Python path to the RPM specfile. Remove unused WITH_OWN_SUBPROCESS_PY from RPM spec Added git-p4 package to the list of git RPMs. Add the WITH_P4IMPORT knob to the Makefile.
2007-04-04Merge branch 'lt/dirwalk'Libravatar Junio C Hamano5-9/+95
* lt/dirwalk: Optimize directory listing with pathspec limiter.
2007-04-03GIT 1.5.1Libravatar Junio C Hamano3-16/+187
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-03Merge 1.5.0.7 inLibravatar Junio C Hamano3-4/+44
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-03GIT 1.5.0.7Libravatar Junio C Hamano3-2/+20
Not that this release really matters, as we will be doing 1.5.1 tomorrow. This commit is to tie the loose ends and merge all of "maint" branch into "master" in preparation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-03Documentation: A few minor fixes to Git User's ManualLibravatar Jakub Narebski1-10/+10
Mainly consistent usage of "git command" and not "git-command" syntax Signed-off-by: Jakub Narebski <jnareb@gmail.com> Acked-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-03Plug memory leak in index-pack collision checking codepath.Libravatar Nicolas Pitre1-0/+1
2007-04-03rerere should not repeat the earlier hunks in later onesLibravatar Junio C Hamano2-4/+26
When a file has more then one conflicting hunks, it repeated the contents of previous hunks in output for later ones. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-04-02Hopefully final update to the draft Release Notes, preparing for 1.5.1Libravatar Junio C Hamano1-8/+15
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Optional Tck/Tk: ignore generated files.Libravatar Junio C Hamano1-0/+2
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Eliminate checks of user-specified Tcl/Tk interpreter.Libravatar Eygene Ryabinkin1-3/+1
Do not make the checks on the Tcl/Tk interpreter passed by '--with-tcltk=/path/to/wish' configure option: user is free to pass anything. Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Rewrite Tcl/Tk interpreter path for the GUI tools.Libravatar Eygene Ryabinkin1-3/+24
--with-tcltk=/path/to/wish sets the TCLTK_PATH variable that is used to substitute the location of the wish interpreter in the Tcl/Tk programs. New tracking file, GIT-GUI-VARS, was introduced: it tracks the location of the Tcl/Tk interpreter and activates the GUI tools rebuild if the interpreter path was changed. The separate tracker is better than the GIT-CFLAGS: there is no need to rebuild the whole git if the interpreter path was changed. Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
2007-03-31Add --with-tcltk and --without-tcltk to configure.Libravatar Eygene Ryabinkin3-1/+38
--with-tcltk enables the search of the Tcl/Tk interpreter. If no interpreter is found then Tcl/Tk dependend parts are disabled. --without-tcltk unconditionally disables Tcl/Tk dependent parts. The original behaviour is not changed: bare './configure' just installs the Tcl/Tk part doing no checks for the interpreter. Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
2007-03-31NO_TCLTKLibravatar Eygene Ryabinkin1-3/+18
Makefile knob named NO_TCLTK was introduced. It prevents the build and installation of the Tcl/Tk dependent parts. Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
2007-03-31Added correct Python path to the RPM specfile.Libravatar Eygene Ryabinkin1-1/+5
Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Remove unused WITH_OWN_SUBPROCESS_PY from RPM specLibravatar Brian Gernhardt1-5/+4
We don't have a copy of subprocess.py anymore, so we removed that option from the Makefile. Let's not leave that cruft around the RPM spec file either. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Added git-p4 package to the list of git RPMs.Libravatar Eygene Ryabinkin1-4/+21
Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Add the WITH_P4IMPORT knob to the Makefile.Libravatar Eygene Ryabinkin1-0/+26
WITH_P4IMPORT: enables the installation of the Perforce import script. Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31git-blame.el: pick a set of random colors for each git-blame turnLibravatar Xavier Maillard1-28/+55
I thought it would be cool to have different set of colors for each git-blame-mode. Function `git-blame-new-commit' does this for us picking when possible, a random colors based on the set we build on startup. When it fails, `git-blame-ancient-color' will be used. We also take care not to use the same color more than once (thank you David Kågedal, really). * Prevent (future possible) namespace clash by renaming `color-scale' into `git-blame-color-scale'. Definition has been changed to be more in the "lisp" way (thanks for help to #emacs). Also added a small description of what it does. * Added docstrings at some point and instructed defvar when a variable was candidate to customisation by users. * Added missing defvar to silent byte-compilers (git-blame-file, git-blame-current) * Do not require 'cl at startup * Added more informations on compatibility Signed-off-by: Xavier Maillard <zedek@gnu.org> Acked-by: David Kågedal <davidk@lysator.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31git-blame.el: separate git-blame-mode to ease maintenanceLibravatar Xavier Maillard1-18/+37
git-blame-mode has been splitted into git-blame-mode-on and git-blame-mode-off; it now conditionnaly calls one of them depending of how we call it. Code is now easier to maintain and to understand. Fixed `git-reblame' function: interactive form was at the wrong place. String displayed on the mode line is now configurable through `git-blame-mode-line-string` (default to " blame"). Signed-off-by: Xavier Maillard <zedek@gnu.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Optimize directory listing with pathspec limiter.Libravatar Linus Torvalds5-9/+95
The way things are set up, you can now pass a "pathspec" to the "read_directory()" function. If you pass NULL, it acts exactly like it used to do (read everything). If you pass a non-NULL pointer, it will simplify it into a "these are the prefixes without any special characters", and stop any readdir() early if the path in question doesn't match any of the prefixes. NOTE! This does *not* obviate the need for the caller to do the *exact* pathspec match later. It's a first-level filter on "read_directory()", but it does not do the full pathspec thing. Maybe it should. But in the meantime, builtin-add.c really does need to do first read_directory(dir, .., pathspec); if (pathspec) prune_directory(dir, pathspec, baselen); ie the "prune_directory()" part will do the *exact* pathspec pruning, while the "read_directory()" will use the pathspec just to do some quick high-level pruning of the directories it will recurse into. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31cvsserver: Don't lie about binary mode in asciidoc documentationLibravatar Frank Lichtenheld1-3/+5
The git-cvsserver documentation claims that the server will set -k modes if appropriate which is not really the case. On the other hand the available gitcvs.allbinary variable is not documented at all. Fix both these issues by rewording the related paragraph. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31git-svn: fail on rebase if we are unable to find a ref to rebase againstLibravatar Eric Wong1-0/+3
If we're on an invalid HEAD, we should detect this and avoid attempting to continue. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Keep rename/rename conflicts of intermediate merges while doing recursive mergeLibravatar Alex Riesen1-6/+31
This patch leaves the base name in the resulting intermediate tree, to propagate the conflict from intermediate merges up to the top-level merge. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31contrib/workdir: add a simple script to create a working directoryLibravatar Julian Phillips1-0/+57
Add a simple script to create a working directory that uses symlinks to point at an exisiting repository. This allows having different branches in different working directories but all from the same repository. Based on a description from Junio of how he creates multiple working directories[1]. With the following caveat: "This risks confusion for an uninitiated if you update a ref that is checked out in another working tree, but modulo that caveat it works reasonably well." [1] http://article.gmane.org/gmane.comp.version-control.git/41513/ Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Reimplement emailing part of hooks--update in contrib/hooks/post-receive-emailLibravatar Andy Parkins2-0/+605
The update hook is no longer the correct place to generate emails; there is now the hooks/post-receive script which is run automatically after a ref has been updated. This patch is to make use of that new location, and to address some faults in the old update hook. The primary problem in the conversion was that in the update hook, the ref has not actually been changed, but is about to be. In the post-receive hook the ref has already been updated. That meant that where we previously had lines like: git rev-list --not --all would now give the wrong list because "--all" in the post-receive hook includes the ref that we are making the email for. This made it more difficult to show only the new revisions added by this update. The solution is not pretty; however it does work and doesn't need any changes to git-rev-list itself. It also fixes (more accurately: reduces the likelihood of) a nasty race when another update occurs while this script is running. The solution, in short, looks like this (see the source code for a longer explanation) git rev-parse --not --all | grep -v $(git rev-parse $refname) | git rev-list --pretty --stdin $oldrev..$newrev This uses git-rev-parse followed by grep to filter out the revision of the ref in question before it gets to rev-list and inhibits the output of itself. By using $(git rev-parse $revname) rather than $newrev as the filter, it also takes care of the situation where another update to the same ref has been made since $refname was $newrev. The second problem that is addressed is that of tags inhibiting the correct output of an update email. Consider this, with somebranch and sometag pointing at the same revision: git push origin somebranch git push origin sometag That would work fine; the push of the branch would generate an email containing all the new commits introduced by the update, then the push of the tag would generate the shortlog formatted tag email. Now consider: git push origin sometag git push origin somebranch When some branch comes to run its "--not --all" line, it will find sometag, and filter those commits from the email - leaving nothing. That meant that those commits would not show (in full) on any email. The fix is to not use "--all", and instead use "--branches" in the git-rev-parse command. Other changes * Lose the monstrous one-giant-script layout and put things in easy to digest functions. This makes it much easier to find the place you need to change if you wanted to customise the output. I've also tried to write more verbose comments for the same reason. The hook script is big, mainly because of all the different cases that it has to handle, so being easy to navigate is important. * All uses of "git-command" changed to "git command", to cope better if a user decided not to install all the hard links to git; * Cleaned up some of the English in the email * The fact that the receive hook makes the ref available also allows me to use Shawn Pearce's fantastic suggestion that an annotated tag can be parsed with git-for-each-ref. This removes the potentially non-portable use of "<<<" heredocs and the nasty messing around with "date" to convert numbers of seconds UTC to a real date * Deletions are now caught and notified (briefly) * To help with debugging, I've retained the command line mode from the update hook; but made it so that the output is not emailed, it's just printed to the screen. This could then be redirected if the user wanted * Removed the "Hello" from the beginning of the email - it's just noise, and no one seriously has their day made happier by "friendly" programs * The fact that it doesn't rely on repository state as an indicator any more means that it's far more stable in its output; hopefully the same arguments will always generate the same email - even if the repository changes in the future. This means you can easily recreate an email should you want to. * Included Jim Meyering's envelope sender option for the sendmail call * The hook is now so big that it was inappropriate to copy it to every repository by keeping it in the templates directory. Instead, I've put a comment saying to look in contrib/hooks, and given an example of calling the script from that template hook. The advantage of calling the script residing at some fixed location is that if a future package of git included a bug fixed version of the script, that would be picked up automatically, and the user would not have to notice and manually copy the new hook to every repository that uses it. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31git-svn: avoid respewing similar error messages for missing pathsLibravatar Eric Wong1-5/+11
We ignore errors if the path we're tracking did not exist for a particular revision range, but we still print out warnings telling the user about that. As pointed out by Seth Falcon, this amounts to a lot of warnings that could confuse and worry users. I'm not entirely comfortable completely silencing the warnings, but showing one warning per path that we track should be reasonable. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31Rename warn() to warning() to fix symbol conflicts on BSD and Mac OSLibravatar Theodore Ts'o5-6/+6
This fixes a problem reported by Randal Schwartz: >I finally tracked down all the (albeit inconsequential) errors I was getting >on both OpenBSD and OSX. It's the warn() function in usage.c. There's >warn(3) in BSD-style distros. It'd take a "great rename" to change it, but if >someone with better C skills than I have could do that, my linker and I would >appreciate it. It was annoying to me, too, when I was doing some mergetool testing on Mac OS X, so here's a fix. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: "Randal L. Schwartz" <merlyn@stonehenge.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31git-mailinfo fixes for patch mungingLibravatar Don Zickus2-12/+13
Don't translate the patch to UTF-8, instead preserve the data as is. This also reverts a test case that was included in the original patch series. Also allow overwriting the authorship and title information we gather from RFC2822 mail headers with additional in-body headers, which was pointed out by Linus. Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-31gitweb: Support comparing blobs (files) with different namesLibravatar Jakub Narebski1-2/+2
Fix the bug that caused "blobdiff" view called with new style URI for a rename with change diff to be show as new (added) file diff. New style URI for "blobdiff" for rename means with $hash_base ('hb') and $hash_parent_base ('hpb') paramaters denoting tree-ish (usually commit) of a blobs being compared, together with both $file_name ('f') and $file_parent ('fp') parameters. It is done by adding $file_parent ('fp') to the path limiter, meaning that diff command becomes: git diff-tree [options] hpb hb -- fp f Other option would be finding hash of a blob using git_get_hash_by_path subroutine and comparing blobs using git-diff, or using extended SHA-1 syntax and compare blobs using git-diff: git diff [options] hpb:fp hp:f Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-30Do not bother documenting fetch--toolLibravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-30Update draft release notes for 1.5.1Libravatar Junio C Hamano1-1/+6
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-29Merge branch 'maint'Libravatar Junio C Hamano2-9/+9
* maint: git-upload-pack: make sure we close unused pipe ends Documentation/git-rev-parse.txt: fix example in SPECIFYING RANGES. Documentation/git-svnimport.txt: fix typo.
2007-03-29git-quiltimport /bin/sh-ism fixLibravatar Francis Daly1-1/+1
Bryan Wu reported /usr/local/bin/git-quiltimport: 114: Syntax error: Missing '))' Most bourne-ish shells I have here accept x=$((echo x)|cat) but all bourne-ish shells I have here accept x=$( (echo x)|cat) because $(( might mean arithmetic expansion. Signed-off-by: Francis Daly <francis@daoine.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-29Bisect: Improve error message in "bisect_next_check".Libravatar Christian Couder1-7/+9
So we can remove the specific message in "bisect_run". Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-29Merge branch 'master' of git://repo.or.cz/git/mergetool.gitLibravatar Junio C Hamano2-81/+87
* 'master' of git://repo.or.cz/git/mergetool.git: mergetool: Clean up description of files and prompts for merge resolutions mergetool: Make git-rm quiet when resolving a deleted file conflict mergetool: Add support for Apple Mac OS X's opendiff command mergetool: Fix abort command when resolving symlinks and deleted files mergetool: Remove spurious error message if merge.tool config option not set mergetool: factor out common code mergetool: portability fix: don't use reserved word function mergetool: portability fix: don't assume true is in /bin mergetool: Don't error out in the merge case where the local file is deleted mergetool: Replace use of "echo -n" with printf(1) to be more portable Fix minor formatting issue in man page for git-mergetool
2007-03-29mergetool: Clean up description of files and prompts for merge resolutionsLibravatar Theodore Ts'o1-12/+15
This fixes complaints from Junio for how messages and prompts are printed when resolving symlink and deleted file merges. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Make git-rm quiet when resolving a deleted file conflictLibravatar Theodore Ts'o1-1/+1
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Add support for Apple Mac OS X's opendiff commandLibravatar Theodore Ts'o1-2/+14
Signed-off-by: Arjen Laarhoven <arjen@yaph.org> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Fix abort command when resolving symlinks and deleted filesLibravatar Theodore Ts'o1-4/+4
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>