aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* difftool: Add '-x' and as an alias for '--extcmd'David Aguilar2010-01-15
| | | | | | | | | | | | This adds '-x' as a shorthand for the '--extcmd' option. Arguments to '--extcmd' can be specified separately, which was not originally possible. This also fixes the brief help text so that it mentions both '-x' and '--extcmd'. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t7800-difftool.sh: Simplify the --extcmd testDavid Aguilar2010-01-15
| | | | | | | | Instead of running 'grep', 'echo', and 'wc' we simply compare git-difftool's output against a known good value. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-diff.txt: Link to git-difftoolDavid Aguilar2010-01-09
| | | | | Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* difftool: Allow specifying unconfigured commands with --extcmdDavid Aguilar2010-01-09
| | | | | | | | | | | git-difftool requires difftool.<tool>.cmd configuration even when tools use the standard "$diffcmd $from $to" form. This teaches git-difftool to run these tools in lieu of configuration by allowing the command to be specified on the command line. Reference: http://article.gmane.org/gmane.comp.version-control.git/133377 Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* difftool--helper: Remove use of the GIT_MERGE_TOOL variableDavid Aguilar2010-01-09
| | | | | | | | | | | | | An undocumented mis-feature in git-difftool is that it allows you to specify a default difftool by setting GIT_MERGE_TOOL. This behavior was never documented and was included as an oversight back when git-difftool was maintained outside of git. git-mergetool never honored GIT_MERGE_TOOL so neither should git-difftool. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* difftool--helper: Update copyright and remove distracting commentsDavid Aguilar2010-01-09
| | | | | | | | Some of the comments in git-difftool--helper are not needed because the code is sufficiently readable without them. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-difftool: Add '--gui' for selecting a GUI toolDavid Aguilar2010-01-03
| | | | | | | | | | | | | | Users might prefer to have git-difftool use a different tool when run from a Git GUI. This teaches git-difftool to honor 'diff.guitool' when the '--gui' option is specified. This allows users to configure their preferred command-line diff tool in 'diff.tool' and a GUI diff tool in 'diff.guitool'. Reference: http://article.gmane.org/gmane.comp.version-control.git/133386 Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t7800-difftool: Set a bogus tool for use by testsDavid Aguilar2010-01-03
| | | | | | | | | | | | | If a difftool test has an error then running the git test suite may end up invoking a GUI diff tool. We now guard against this by setting a difftool.bogus-tool.cmd variable. The tests already used --tool=bogus-tool in various places so this is simply ensuring that nothing ever falls back and finds a real diff tool. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Git 1.6.6v1.6.6Junio C Hamano2009-12-23
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git svn: add test for a git svn gc followed by a git svn mkdirsRobert Zeh2009-12-23
| | | | | | | | | git svn gc will compress the unhandled.log files that git svn mkdirs reads, causing git svn mkdirs to skip directory creation. [ew: trivial whitespace cleanups] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Robert Zeh <robert.a.zeh@gmail.com>
* git svn: branch/tag commands detect username in URLsEric Wong2009-12-23
| | | | | | | | | | | svn+ssh:// repositories often have userinfo embedded in the URL which were stripped out of the "git-svn-id:" trailers. Since the SVN::Client::copy function takes userinfo into account when matching URLs for SVN repositories, we need to retrieve the full URL with embedded userinfo in it to avoid mismatched URLs. Tested-by: Florian Köberle <florian@fkoeberle.de> Signed-off-by: Eric Wong <normalperson@yhbt.net>
* Merge branch 'maint'Junio C Hamano2009-12-22
|\ | | | | | | | | * maint: Prevent git blame from segfaulting on a missing author name
| * Prevent git blame from segfaulting on a missing author nameDavid Reiss2009-12-22
| | | | | | | | | | | | | | | | | | | | The human-readable author and committer name can be missing from commits imported from foreign SCM interfaces. Make sure we parse the "author" and "committer" line a bit more leniently and avoid segfaulting by assuming the name always exists. Signed-off-by: David Reiss <dreiss@facebook.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git svn: lookup new parents correctly from svn:mergeinfoEric Wong2009-12-22
| | | | | | | | | | | | | | | | This appears to be a trivial case where array indices were being passed to git rev-list, instead of the contents stored in the array itself. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: Remove obsolete MAXPARENT checkAndrew Myrick2009-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change git-svn not to impose a limit of 16 parents on a merge. This limit in git-svn artificially prevents cloning svn repositories that contain commits with more than 16 merge parents. The limit was removed from builtin-commit-tree.c for git v1.6.0 in commit ef98c5cafb3e799b1568bb843fcd45920dc62f16, so there is no need to check for it it in git-svn. Signed-off-by: Andrew Myrick <amyrick@apple.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: detect cherry-picks correctly.Sam Vilain2009-12-21
| | | | | | | | | | | | | | | | | | | | | | | | The old function was incorrect; in some instances it marks a cherry picked range as a merged branch (because of an incorrect assumption that 'rev-list COMMIT --not RANGE' would work). This is replaced with a function which should detect them correctly, memoized to limit the expense of dealing with branches with many cherry picks to one 'merge-base' call per merge, per branch which used cherry picking. Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: exclude already merged tips using one rev-list callSam Vilain2009-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old function would have to check all mentioned merge tips, every time that the mergeinfo ticket changed. This involved 1-2 rev-list operation for each listed mergeinfo line. If there are a lot of feature branches being merged into a trunk, this makes for a very expensive operation for detecting the new parents on every merge. This new version first uses a single 'rev-list' to figure out which commit ranges are already reachable from the parents. This is used to eliminate the already merged branches from the list. Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: fix some mistakes with interpreting SVN mergeinfo commit rangesSam Vilain2009-12-21
| | | | | | | | | | | | | | | | | | | | SVN's list of commit ranges in mergeinfo tickets is inclusive, whereas git commit ranges are exclusive on the left hand side. Also, the end points of the commit ranges may not exist; they simply delineate ranges of commits which may or may not exist. Fix these two mistakes. Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: memoize conversion of SVN merge ticket info to git commit rangesSam Vilain2009-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Each time the svn mergeinfo ticket changes, we look it up in the rev_map; when there are a lot of merged branches, this will result in many repeated lookups of the same information for subsequent commits. Arrange the slow part of the function so that it may be memoized, and memoize it. The more expensive revision walking operation can be memoized separately. [ew: changed "next" to "return" for function exit] Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: expand the svn mergeinfo test suite, highlighting some failuresSam Vilain2009-12-21
| | | | | | | | | | | | | | | | | | As shown, git-svn has some problems; not all svn merges are correctly detected, and cherry picks may incorrectly be detected as real merges. These test cases will be marked as _success once the relevant fixes are in. Signed-off-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | update release notes for git svn in 1.6.6Eric Wong2009-12-21
| | | | | | | | Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | git svn: fix --revision when fetching deleted pathsEric Wong2009-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the -r/--revision argument to fetch deleted history, calling SVN::Ra::get_log() from an SVN::Ra object initialized to track the deleted URL will fail. This regression was introduced in: commit 4aacaeb3dc82bb6479e70e120053dc27a399460e "fix shallow clone when upstream revision is too new" We now ignore errors from SVN::Ra::get_log() here because using --revision will always override the value of $head here if (and only if) we're tracking deleted directories. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | Git 1.6.6-rc4v1.6.6-rc4Junio C Hamano2009-12-20
| | | | | | | | | | | | Hopefully the last rc before the final one. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint'Junio C Hamano2009-12-19
|\ \ | |/ | | | | | | | | | | * maint: rebase -i: abort cleanly if the editor fails to launch technical-docs: document hash API api-strbuf.txt: fix typos and document launch_editor()
| * rebase -i: abort cleanly if the editor fails to launchBjörn Gustavsson2009-12-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the user's configured editor is emacsclient, the editor will fail to launch if emacs is not running and the git command that tried to lanuch the editor will abort. For most commands, all you have to do is to start emacs and repeat the command. The "git rebase -i" command, however, aborts without cleaning the "$GIT_DIR/rebase-merge" directory if it fails to launch the editor, so you'll need to do "git rebase --abort" before repeating the rebase command. Change "git rebase -i" to terminate using "die_abort" (instead of with "die") if the initial launch of the editor fails. Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * technical-docs: document hash APIStephen Boyd2009-12-17
| | | | | | | | | | Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * api-strbuf.txt: fix typos and document launch_editor()Stephen Boyd2009-12-17
| | | | | | | | | | Signed-off-by: Stephen Boyd <bebarino@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t9146: use 'svn_cmd' wrapperEric Wong2009-12-19
| | | | | | | | | | | | Using 'svn' directly may not work for all users. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | git svn: make empty directory creation gc-awareEric Wong2009-12-19
| | | | | | | | | | | | | | | | | | The "git svn gc" command creates and appends to unhandled.log.gz files which should be parsed before the uncompressed unhandled.log files. Reported-by: Robert Zeh Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | Git 1.6.6-rc3v1.6.6-rc3Junio C Hamano2009-12-16
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint' to sync with 1.6.5.7Junio C Hamano2009-12-16
|\ \ | |/ | | | | | | | | | | | | | | * maint: Git 1.6.5.7 worktree: don't segfault with an absolute pathspec without a work tree ignore unknown color configuration help.autocorrect: do not run a command if the command given is junk Illustrate "filter" attribute with an example
| * Git 1.6.5.7v1.6.5.7Junio C Hamano2009-12-16
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * worktree: don't segfault with an absolute pathspec without a work treeJunio C Hamano2009-12-16
| | | | | | | | | | | | | | | | | | | | | | | | If a command is run with an absolute path as a pathspec inside a bare repository, e.g. "rev-list HEAD -- /home", the code tried to run strlen() on NULL, which is the result of get_git_work_tree(), and segfaulted. It should just fail instead. Currently the function returns NULL even inside .git/ in a repository with a work tree, but that is a separate issue. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * ignore unknown color configurationJeff King2009-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When parsing the config file, if there is a value that is syntactically correct but unused, we generally ignore it. This lets non-core porcelains store arbitrary information in the config file, and it means that configuration files can be shared between new and old versions of git (the old versions might simply ignore certain configuration). The one exception to this is color configuration; if we encounter a color.{diff,branch,status}.$slot variable, we die if it is not one of the recognized slots (presumably as a safety valve for user misconfiguration). This behavior has existed since 801235c (diff --color: use $GIT_DIR/config, 2006-06-24), but hasn't yet caused a problem. No porcelain has wanted to store extra colors, and we once a color area (like color.diff) has been introduced, we've never changed the set of color slots. However, that changed recently with the addition of color.diff.func. Now a user with color.diff.func in their config can no longer freely switch between v1.6.6 and older versions; the old versions will complain about the existence of the variable. This patch loosens the check to match the rest of git-config; unknown color slots are simply ignored. This doesn't fix this particular problem, as the older version (without this patch) is the problem, but it at least prevents it from happening again in the future. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * help.autocorrect: do not run a command if the command given is junkJohannes Sixt2009-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a given command is not found, then help.c tries to guess which one the user could have meant. If help.autocorrect is 0 or unset, then a list of suggestions is given as long as the dissimilarity between the given command and the candidates is not excessively high. But if help.autocorrect was non-zero (i.e., a delay after which the command is run automatically), the latter restriction on dissimilarity was not obeyed. In my case, this happened: $ git ..daab02 WARNING: You called a Git command named '..daab02', which does not exist. Continuing under the assumption that you meant 'read-tree' in 4.0 seconds automatically... The patch reuses the similarity limit that is also applied when the list of suggested commands is printed. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Illustrate "filter" attribute with an exampleNanako Shiraishi2009-12-14
| | | | | | | | | | | | | | | | The example was taken from aa4ed402c9721170fde2e9e43c3825562070e65e (Add 'filter' attribute and external filter driver definition). Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | bash: Support new 'git fetch' optionsBjörn Gustavsson2009-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support the new options --all, --prune, and --dry-run for 'git fetch'. As the --multiple option was primarily introduced to enable 'git remote update' to be re-implemented in terms of 'git fetch' (16679e37) and is not likely to be used much from the command line, it does not seems worthwhile to complicate the code (to support completion of multiple remotes) to handle it. Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Update Release Notes for 1.6.6 to remove old bugfixesJunio C Hamano2009-12-10
| | | | | | | | | | | | These three have already been backported to 1.6.5.5 Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Sync with 1.6.5.6Junio C Hamano2009-12-10
|\ \ | |/ | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Git 1.6.5.6v1.6.5.6Junio C Hamano2009-12-10
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Fix archive format with -- on the command lineJunio C Hamano2009-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Giving --format from the command line, or using output file extention to DWIM the output format, with a pathspec that is disambiguated with an explicit double-dash on the command line, e.g. git archive -o file --format=zip HEAD -- path git archive -o file.zip HEAD -- path didn't work correctly. This was because the code reordered (when one was given) or added (when the format was inferred) a --format argument at the end, effectively making it to "archive HEAD -- path --format=zip", i.e. an extra pathspec that is unlikely to match anything. The command line argument list should always be "options, revs and then paths", and we should set a good example by inserting the --format at the beginning instead. Reported-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Remove post-upload-hookJunio C Hamano2009-12-10
| | | | | | | | | | | | | | This hook runs after "git fetch" in the repository the objects are fetched from as the user who fetched, and has security implications. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Git 1.6.6-rc2v1.6.6-rc2Junio C Hamano2009-12-09
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge git://repo.or.cz/git-guiJunio C Hamano2009-12-09
|\ \ | | | | | | | | | | | | | | | | | | | | | * git://repo.or.cz/git-gui: git-gui: suppress RenderBadPicture X error caused by Tk bug git-gui: Increase blame viewer usability on MacOS. git-gui: search 4 directories to improve statistic of gc hint git gui: make current branch default in "remote delete branch" merge check
| * | git-gui: suppress RenderBadPicture X error caused by Tk bugJindrich Makovicka2009-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to a bug in Tk, git-gui almost always (unless git-gui is closed right after starting) produces an X window error message on exit, something like: X Error of failed request: RenderBadPicture (invalid Picture parameter) Major opcode of failed request: 150 (RENDER) Minor opcode of failed request: 7 (RenderFreePicture) Picture id in failed request: 0x3a000dc Serial number of failed request: 1965 Current serial number in output stream: 1980 Respective Tk bug report is here: http://sourceforge.net/tracker/?func=detail&atid=112997&aid=1821174&group_id=12997 This bug is triggered only when the send command is blocked via rename send {} . The following patch re-enables send just before quiting git-gui to suppress the error. Signed-off-by: Jindrich Makovicka <makovick@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | git-gui: Increase blame viewer usability on MacOS.Alexander Gavrilov2009-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On MacOS raising a window causes the focus to be transferred to it -- although it may actually be a bug in the Tcl/Tk port. When this happens with the blame viewer tooltips, it makes the interface less usable, because Entry and Leave handlers on the text view cause the tip to disappear once the mouse is moved even 1 pixel. This commit makes the code raise the main window on MacOS when Tk 8.5 is used. This version seems to properly support wm transient by making the tip stay on top of the master, so reraising the master does not cause it to disappear. Thus the only remaining sign of problems is slight UI flicker when focus is momentarily transferred to the tip and back. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | git-gui: search 4 directories to improve statistic of gc hintClemens Buchacher2009-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Windows, git-gui suggests running the garbage collector if it finds 1 or more files in .git/objects/42 (as opposed to 8 files on other platforms). The probability of that happening if the repo contains about 100 loose objects is 32%. The probability for the same to happen when searching 4 directories is only 8%, which is bit more reasonable. Also remove $objects_limit from the message, because we already know that we are above (or close to) that limit. Telling the user about that number does not really give him any useful information. The following octave script shows the probability for at least m*q objects to be found in q subdirectories of .git/objects if n is the total number of objects. q = 4; m = [1 2 8]; n = 0:10:2000; P = zeros(length(n), length(m)); for k = 1:length(n) P(k, :) = 1-binocdf(q*m-1, n(k), q/(256-q)); end plot(n, P); n \ q 1 4 50 18% 1% 100 32% 8% 200 54% 39% 500 86% 96% Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | git gui: make current branch default in "remote delete branch" merge checkHeiko Voigt2009-12-05
| | | | | | | | | | | | | | | | | | | | | We already do the same when locally deleting a branch. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano2009-12-09
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/gitk/gitk: gitk: Fix selection of tags gitk: Default to the system colours on Windows gitk: Update Japanese translation gitk: Fix "git gui blame" invocation when called from top-level directory gitk: Disable checkout of remote branches gitk: Improve appearance of radiobuttons and checkbuttons gitk: Skip translation of "wrong Tcl version" message gitk: Add Japanese translation gitk: Use the --submodule option for displaying diffs when available gitk: Fix diffing committed -> staged (typo in diffcmd) gitk: Add configuration for UI colour scheme gitk: Don't compare fake children when comparing commits gitk: Show diff of commits at end of compare-commits output gitk: Add a user preference to enable/disable use of themed widgets gitk: Fix errors in the theme patch gitk: Use themed tk widgets gitk: Restore scrolling position of diff pane on back/forward in history
| * | | gitk: Fix selection of tagsPat Thoyts2009-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a tag is clicked an error is raised due to a missing parameter in a function call. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>