summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-01-23git-gui: Use git diff --submodule when availableLibravatar Jens Lehmann1-4/+13
Doing so is much faster and gives the same output. Here are some numbers: $ time git submodule summary real 0m0.219s user 0m0.050s sys 0m0.111s $ time git diff --submodule real 0m0.012s user 0m0.003s sys 0m0.009s Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: work from the .git dirLibravatar Giuseppe Bilotta1-0/+10
When git-gui is run from a .git dir, _gitdir would be set to "." by rev-parse, something that confuses the worktree detection. Fix by expanding the value of _gitdir to pwd in this special case. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: Fix applying a line when all following lines are deletionsLibravatar Jeff Epler1-0/+1
If a diff looked like: @@ context -del1 -del2 and you wanted to stage the deletion 'del1', the generated patch wouldn't apply because it was missing the line 'del2' converted to context, but this line was counted in the @@-line Signed-off-by: Jeff Epler <jepler@unpythonic.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: Correct file_states when unstaging partly staged entryLibravatar Jens Lehmann1-0/+3
When unstaging a partly staged file or submodule, the file_states list was not updated properly (unless unstaged linewise). Its index_info part did not contain the former head_info as it should have but kept its old value. This seems not to have had any bad effects but diminishes the value of the file_states list for future enhancements. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: Fix gitk for branch whose name matches local fileLibravatar Peter Krefting1-1/+1
When trying to run gitk on a branch name whose name matches a local file, it will toss an error saying that the name is ambiguous. Adding a pair of dashes will make gitk parse the options to the left of it as branch names. Since wish eats the first pair of dashes we throw at it, we need to add a second one to ensure they get through. Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: Keep repo_config(gui.recentrepos) and .gitconfig in syncLibravatar Christopher Beelby1-0/+4
When the number of recent repo's gets to ten there can be a situation where an item is removed from the .gitconfig file via a call to git config --unset, but the internal representation of that file (repo_config(gui.recentrepo)) is not updated. Then a subsequent attempt to remove an item from the list fails because git-gui attempts to call --unset on a value that has already been removed. This leads to duplicates in the .gitconfig file, which then also cause errors if the git-gui tries to --unset them (rather than using --unset-all. --unset-all is not used because it is not expected that duplicates should ever be allowed to exist.) When loading the list of recent repositories (proc _get_recentrepos) if a repo in the list is not considered a valid git reposoitory then we should go ahead and remove it so it doesn't take up a slot in the list (since we limit to 10 items). This will prevent a bunch of invalid entries in the list (which are not shown) from making valid entries dissapear off the list even when there are less than ten valid entries. See: http://code.google.com/p/msysgit/issues/detail?id=362 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-23git-gui: handle really long error messages in updateindex.Libravatar Pat Thoyts1-16/+18
As reported to msysGit (bug #340) it is possible to get some very long error messages when updating the index. The use of a label to display this prevents scrolling the output. This patch replaces the label with a scrollable text widget configured to look like a label. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-06git-gui: Add hotkeys for "Unstage from commit" and "Revert changes"Libravatar Vitaly _Vi Shukela1-2/+8
Signed-off-by: Vitaly _Vi Shukela <public_vi@tut.by> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2010-01-06git-gui: Makefile: consolidate .FORCE-* targetsLibravatar Jonathan Nieder1-4/+3
Providing multiple targets to force a rebuild is unnecessary complication. Avoid using a name that could conflict with future special targets in GNU make (a leading period followed by uppercase letters). Cc: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-12-07git-gui: suppress RenderBadPicture X error caused by Tk bugLibravatar Jindrich Makovicka1-0/+5
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>
2009-12-05git-gui: Increase blame viewer usability on MacOS.Libravatar Alexander Gavrilov1-1/+15
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>
2009-12-05git-gui: search 4 directories to improve statistic of gc hintLibravatar Clemens Buchacher1-11/+10
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>
2009-12-05git gui: make current branch default in "remote delete branch" merge checkLibravatar Heiko Voigt1-1/+7
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>
2009-10-27git-gui: adjust the minimum height of diff pane for shorter screen heightLibravatar Vietor Liu1-1/+1
When the main window is maximized, if the screen height is shorter (e.g. Netbook screen 1024x600), both the partial commit pane and the status bar are hidden. The diff pane is resizable, so that it can use less vertical height, allowing the overall window to be shorter and still display both the entire commit pane and status bar. Signed-off-by: Vietor Liu <vietor@vxwo.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-09-25git-gui: fix use of uninitialized variableLibravatar Jens Lehmann1-0/+1
This fixes a bug introduced by the "display summary when showing diff of a submodule" patch. It lead to a "no such variable" error when opening the diff context menu while no diff was shown. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-09-12git-gui: store wm state and fix wm geometryLibravatar Alexey Borzenkov1-0/+21
I often close git gui window when it is maximized, and when I reopen it next time the it would usually become out of place (e.g. a huge window with a top-left corner somewhere close to the center of the screen). Fix it by storing and restoring wm state in config, as well as setting wm state to normal before retrieving wm geometry info. Signed-off-by: Alexey Borzenkov <snaury@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-26git-gui: Ensure submodule path is quoted properlyLibravatar Shawn O. Pearce1-2/+2
When quoting an arbitrary user string in Tcl, its better to use [list ...] than to use {...}, in case the user string has spaces or { embedded within it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-26git-gui: fix diff for partially staged submodule changesLibravatar Jens Lehmann1-4/+6
When a submodule commit had already been staged and another commit had been checked out inside the submodule, the diff always displayed the submodule commit log messages between the last supermodule commit and the working tree, totally ignoring the commit in the index. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-12git-gui: Update russian translationLibravatar Alex Riesen1-12/+16
Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-12git-gui: Limit display to a maximum number of filesLibravatar Dan Zwell2-1/+21
When there is a large number of new or modified files, "display_all_files" takes a long time, and git-gui appears to hang. This change limits the number of files that are displayed. This limit can be set as gui.maxfilesdisplayed, and is 5000 by default. A warning is shown the first time the list of files is truncated in this GUI session. Subsequent truncations are not mentioned to the user. Signed-off-by: Dan Zwell <dzwell@zwell.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-10git-gui: remove warning when deleting correctly merged remote branchLibravatar Heiko Voigt1-7/+9
If the user wants to delete a remote branch and selects the correct "merged into" we should not warn that "Recovering deleted branches is difficult". For local branches we do the same already. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-10git-gui: Added Greek translation & glossaryLibravatar Jimmy Angelakos2-0/+2176
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-08-10git-gui: display summary when showing diff of a submoduleLibravatar Jens Lehmann2-3/+29
As it is hard to say what changed in a submodule by looking at the hashes, let's show the colored submodule summary instead. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-05-01git-gui: Fixes for Mac OS X TkAquaLibravatar Daniel A. Steffen2-19/+22
- detect more Tk.framework variants - fix apple menu setup, use native preferences menu item - don't set menu font Signed-off-by: Daniel A. Steffen <das@users.sourceforge.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-29git-gui: Update Russian translationLibravatar Alex Riesen1-401/+979
Also, the previous translations of the words 'tag' and 'merge' were changed. Added translation of the 'Tool' submenu. Thanks go to Alexander Gavrilov and Dmitry Potapov for proofreading and suggestions. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08git-gui: run post-checkout hook after cloneLibravatar Jens Lehmann1-1/+28
git-gui is using "git-read-tree -u" when cloning which doesn't invoke the post-checkout hook as a plain git-clone would. So git-gui must call the hook itself. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08Merge branch 'maint'Libravatar Shawn O. Pearce2-2/+3
* maint: git-gui: Ensure consistent usage of mergetool.keepBackup git-gui: fix use of undeclared variable diff_empty_count
2009-04-08git-gui: Ensure consistent usage of mergetool.keepBackupLibravatar Ferry Huberts2-2/+2
In several places merge.keepBackup is used i.s.o. mergetool.keepBackup. This patch makes it all consistent. Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-08git-gui: fix use of undeclared variable diff_empty_countLibravatar Joerg Bornemann1-0/+1
Commit 584fa9cc introduced the global variable diff_empty_count, which is used in diff.tcl. This variable wasn't declared anywhere which resulted in an ugly error message box instead of the intended informative message. Signed-off-by: Joerg Bornemann <joerg.bornemann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-05git-gui (Win): make starting via "Git GUI Here" on .git/ possibleLibravatar Markus Heidelberg1-1/+6
This works around git-gui's error message Cannot use funny .git directory: . when started from the .git/ directory, which is useful in repositories without any directories for the right click. Now git-gui can be started via Windows Explorer shell extension (Git GUI Here) from the .git/ directory. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-05git-gui (Win): make "Explore Working Copy" more robustLibravatar Markus Heidelberg1-1/+1
Starting the Explorer from the git-gui menu "Explore Working Copy" didn't work, when git-gui was started via Windows Explorer shell extension (Git GUI Here) from a directory within the project. The Explorer raised an error message like this: Path "C:/somedir/worktree" is not available or not a directory It worked when started from the project directory itself, because then the path argument for the Explorer was just '.' (current directory) without any problematic forward slashes. To make it work, convert the path given as argument to explorer.exe to its native format with backslashes. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-05git-gui: run post-checkout hook on checkoutLibravatar Jens Lehmann1-4/+39
git-gui is using "git-read-tree -u" for checkout which doesn't invoke the post-checkout hook as a plain git-checkout would. So git-gui must call the hook itself. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-05git-gui: When calling post-commit hook wrong variable was cleared.Libravatar Jens Lehmann1-3/+3
Before calling the post-commit hook, the variable "pc_err" is cleared while later only "pch_error" is used. "pch_error$cmt_id" only appeared in "upvar"-Statements (which were changed to "global") and was removed. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-04-05git-gui: use `git --html-path` to get the location of installed HTML docsLibravatar Markus Heidelberg1-4/+29
Previously a hardcoded path $GIT_EXEC_PATH/../Documentation/ was used to search for the documentation, when the user has asked for it via menu "Help -> Online Documentation". This didn't work for the default directory structure. To find the path reliably, use the new git command line option, which returns the correct path. If the output of `git --html-path` is empty because git is not found or the option is not yet supported in the installed git, the documentation from kernel.org is launched. There is no additional guessing of the right location of the installed docs. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-30Merge branch 'maint'Libravatar Shawn O. Pearce1-1/+1
* maint: git-gui: fix deleting from the context menu with empty selection
2009-03-30git-gui: fix deleting from the context menu with empty selectionLibravatar Markus Heidelberg1-1/+1
An "Application Error" was raised when trying to delete text from the commit message field when no text was selected. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-24git-gui: minor spelling fix and string factorisation.Libravatar Sam Hocevar13-111/+12
Properly spell "successful" and slightly rewrite a couple of strings that actually say the same thing in order to reduce translation work. Update .pot and .po files accordingly since no new translation is required. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-24git-gui: various French translation fixesLibravatar Sam Hocevar1-96/+96
Mostly grammar, spelling and typography fixes, but also a few wording enhancements here and there. Signed-off-by: Sam Hocevar <sam@zoy.org> Acked-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-20Merge branch 'maint'Libravatar Shawn O. Pearce1-1/+1
2009-03-20git-gui: Fix merge conflict display error when filename contains spacesLibravatar Jens Lehmann1-1/+1
When a merge conflict occurs in a file with spaces in the filename, git-gui showed wrongly "LOCAL: deleted". Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-16Merge branch 'maint'Libravatar Shawn O. Pearce1-0/+4
* maint: git-gui: don't hide the Browse button when resizing the repo chooser
2009-03-16git-gui: don't hide the Browse button when resizing the repo chooserLibravatar Markus Heidelberg1-0/+4
Rather shrink the input field for "Create New Repository" and "Open Existing Repository" as it's already done for "Clone Existing Repository". Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-03-09Append ampersand to "Target" of lnk files created by do_cygwin_shortcutLibravatar Phil Lawrence1-1/+1
The git-gui menu item "Repository | Create Desktop Icon" creates a shortcut (.lnk file) on the Windows desktop. The purpose of the created shortcut is to make it easy for a user to launch git-gui for a particular repo in the future. A Windows user would expect to see git gui launch when they click the shortcut; they would not expect (nor want) to see a cmd window open and remain open in the background. msysGit avoids opening a command window altogether when it's Git GUI shortcut is used. Ideally, git on cygwin would also have shortcuts that simply open the GUI, but as a first step, this change allows the shell window to politely disappear after starting git gui as a background process. Signed-off-by: Phil Lawrence <prlawrence@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-02-08git-gui: Support more git version notations.Libravatar Alexander Gavrilov1-2/+2
Recently the msysgit repository has got a '1.6.1-msysgit1' tag, which, when used to build the git version, is not handled gracefully by the git-gui version code. This patch changes the regular expressions to fix it, and removes the hardcoded 'rc' string. Now git-gui can accept a version tail like '.foo123.GIT.bar.456.7.g89ab' Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-02-08git-gui: Avoid an infinite rescan loop in handle_empty_diff.Libravatar Alexander Gavrilov1-0/+9
If the index update machinery and git diff happen to disagree on whether a particular file is modified, it may cause git-gui to enter an infinite index rescan loop, where an empty diff starts a rescan, which finds the same set of files modified, and tries to display the diff for the first one, which happens to be the empty one. A current example of a possible disagreement point is the autocrlf filter. This patch breaks the loop by using a global counter to track the auto-rescans. The variable is reset whenever a non-empty diff is displayed. Another suggested approach, which is based on giving the --exit-code argument to git diff, cannot be used, because diff-files seems to trust the timestamps in the index, and returns a non-zero code even if the file is actually unchanged, which essentially defeats the purpose of the auto-rescan logic. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2009-02-01git-gui: Fix post-commit status with subject in non-locale encodingLibravatar Alexander Gavrilov1-10/+19
As pointed out in msysgit bug #181, when a non-locale encoding is used for commits, post-commit status messages display the subject incorrectly. It happens because the file handle is not properly configured before the subject is read back. This patch fixes it by factoring out the code that is used to setup the output handle into a separate function, and calling it from the reading code. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Acked-by: Robin Rosenberg <robin.rosenberg@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-12-17git-gui 0.12Libravatar Shawn O. Pearce1-1/+1
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-12-17git-gui: Get rid of the last remnants of GIT_CONFIG_LOCALLibravatar Johannes Schindelin1-1/+0
In dc871831(Only use GIT_CONFIG in "git config", not other programs), GIT_CONFIG_LOCAL was rested in peace, in favor of not reading /etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-12-10git-gui: Update Hungarian translation for 0.12Libravatar Miklos Vajna1-90/+96
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2008-12-10git-gui: Fixed typos in Swedish translation.Libravatar Peter Krefting1-3/+3
Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>