aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Append ampersand to "Target" of lnk files created by do_cygwin_shortcutPhil Lawrence2009-03-09
| | | | | | | | | | | | | | | | | | | | 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>
* git-gui: Support more git version notations.Alexander Gavrilov2009-02-08
| | | | | | | | | | | | | 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>
* git-gui: Avoid an infinite rescan loop in handle_empty_diff.Alexander Gavrilov2009-02-08
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* git-gui: Fix post-commit status with subject in non-locale encodingAlexander Gavrilov2009-02-01
| | | | | | | | | | | | | | | 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>
* git-gui 0.12gitgui-0.12.0Shawn O. Pearce2008-12-17
| | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Get rid of the last remnants of GIT_CONFIG_LOCALJohannes Schindelin2008-12-17
| | | | | | | | | 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>
* git-gui: Update Hungarian translation for 0.12Miklos Vajna2008-12-10
| | | | | Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fixed typos in Swedish translation.Peter Krefting2008-12-10
| | | | | Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Updated Swedish translation (515t0f0u).Peter Krefting2008-12-09
| | | | | Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git gui: update Italian translationMichele Ballabio2008-12-09
| | | | | Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Update Japanese translation for 0.12Nanako Shiraishi2008-12-09
| | | | | | | Adds translation for one new message string. Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Starting translation for NorwegianFredrik Skolmli2008-12-08
| | | | | | | | | This file have been used locally for some time, and is near completion. Will put an effort into completing it later on, or just leave it as an excercise for other Norwegians. Signed-off-by: Fredrik Skolmli <fredrik@frsk.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Update German (completed) translation.Christian Stimming2008-12-08
| | | | | Signed-off-by: Christian Stimming <stimming@tuhh.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Update po template to include 'Mirroring %s' messageShawn O. Pearce2008-12-08
| | | | | | A late addition to the message library. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix commit encoding handling.Alexander Gavrilov2008-12-08
| | | | | | | | | | | | | | | | | Commits without an encoding header are supposed to be encoded in utf8. While this apparently hasn't always been the case, currently it is the active convention, so it is better to follow it; otherwise people who have to use commitEncoding on their machines are unable to read utf-8 commits made by others. I also think that it is preferrable to display the warning about an unsupported value of commitEncoding more prominently, because this condition may lead to surprising behavior and, eventually, to loss of data. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix handling of relative paths in blame.Alexander Gavrilov2008-12-08
| | | | | | | | | | | | | | | | | Currently using '..' or '.' in the file path for gui blame causes it to break, because the path is passed inside the SHA:PATH spec to cat-file, which apparently does not understand such items. As a result, cat-file returns nothing, and the viewer crashes because of an "index out of range" error. This commit adds a simple function that normalizes such paths. I choose not to use [file normalize], because it uses some data from the file system, e.g. dereferences symlinks, and creates an absolute path, while blame may be used to inspect historical information that bears no relation to the current filesystem state. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.Mark Burton2008-12-02
| | | | | | | | | When the destination repository is a mirror, this function goofed by still passing a refspec to git-push. Now it notices that the remote is a mirror and holds the refspec. Signed-off-by: Mark Burton <markb@ordern.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: update Japanese translationNanako Shiraishi2008-11-26
| | | | | Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: french translation updateChristian Couder2008-11-23
| | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Updated Swedish translation (514t0f0u).Peter Krefting2008-11-21
| | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git gui: update Italian translationMichele Ballabio2008-11-19
| | | | | Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Update Hungarian translation. 100% completed.Miklos Vajna2008-11-17
| | | | | Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix the search bar destruction handler.Alexander Gavrilov2008-11-16
| | | | | | | | | | | Since delete_this is an ordinary function, it should not be passed to cb; otherwise it produces errors when blame windows are closed. Unfortunately, it is not noticeable when blame is shown in the master window, so I missed this bug. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* Update the po templateShawn O. Pearce2008-11-16
| | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Implement automatic rescan after Tool execution.Alexander Gavrilov2008-11-16
| | | | | | | | | | | | | | The Tools menu is generally intended for commands that affect the working directory or repository state. Thus, the user would usually want to initiate rescan after execution of a tool. This commit implements it. In case somebody would want to avoid rescanning after certain tools, it also adds an option that controls it, although it is not made available through the Add dialog. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Allow Tools request arguments from the user.Alexander Gavrilov2008-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While static commands are already useful, some tools need additional parameters to reach maximum usability. This commit adds support for passing them one revision name parameter, and one arbitrary string. With this addition, the tools menu becomes flexible enough to implement basic rebase support: [core] editor = kwrite [guitool "Rebase/Abort"] cmd = git rebase --abort confirm = yes [guitool "Rebase/Continue"] cmd = git rebase --continue [guitool "Rebase/Skip Commit"] cmd = git rebase --skip confirm = yes [guitool "Rebase/Start..."] cmd = git rebase $ARGS $REVISION $CUR_BRANCH title = Start Rebase prompt = Rebase Current Branch argprompt = Flags revprompt = New Base revunmerged = yes Some of the options, like title or prompt, are intentionally not included in the Add dialog to avoid clutter. Also, the dialog handles argprompt and revprompt as boolean vars. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add a Tools menu for arbitrary commands.Alexander Gavrilov2008-11-16
| | | | | | | | | | | | | | | | | | | | | | Due to the emphasis on scriptability in the git design, it is impossible to provide 100% complete GUI. Currently unaccounted areas include git-svn and other source control system interfaces, TopGit, all custom scripts. This problem can be mitigated by providing basic customization capabilities in Git Gui. This commit adds a new Tools menu, which can be configured to contain items invoking arbitrary shell commands. The interface is powerful enough to allow calling both batch text programs like git-svn, and GUI editors. To support the latter use, the commands have access to the name of the currently selected file through the environment. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix the after callback execution in rescan.Alexander Gavrilov2008-11-16
| | | | | | | | | | | | | | | | | | | | | | | | The rescan function receives a callback command as its parameter, which is supposed to be executed after the scan finishes. It is generally used to update status. However, rescan may initiate a loading of a diff, which always calls ui_ready after completion. If the after handler is called before that, ui_ready will override the new status. This commit ensures that the after callback is properly threaded through the diff machinery. Since it uncovered the fact that force_first_diff actually didn't work due to an undeclared global variable, and the desired effects appeared only because of the race condition between the diff system and the rescan callback, I also reimplement this function to make it behave as originally intended. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Implement system-wide configuration handling.Alexander Gavrilov2008-11-16
| | | | | | | | | | | | | | | With the old implementation any system-wide options appear to be set locally in the current repository. This commit adds explicit handling of system options, essentially interpreting them as customized default_config. The difficulty in interpreting system options stems from the fact that simple 'git config' lists all values, while 'git config --global' only values set in ~/.gitconfig, excluding both local and system options. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: try to provide a window icon under XGiuseppe Bilotta2008-11-16
| | | | | | | | | | When running under X, we try to set up a window icon by providing a hand-crafted 16x16 Tk photo image equivalent to the .ico. Wrap in a catch because the earlier Tcl/Tk 8.4 releases didn't provide the 'wm iconphoto' command. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Request blame metadata in utf-8.Alexander Gavrilov2008-11-11
| | | | | | | | | | | | | | The blame builtin now supports automatic conversion of metadata encoding. By default it is converted to the character set specified by i18n.logoutputencoding. Since gui blame expects the data in utf-8, it is necessary to specify the desired encoding directly. An old version of the blame command will simply ignore the option. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add the Show SSH Key item to the clone dialog.Alexander Gavrilov2008-11-11
| | | | | | | | | The user might need to see the key before cloning a repository. This patch makes the relevant menu item available in the Select Repository/Clone dialog. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix focus transition in the blame viewer.Alexander Gavrilov2008-11-11
| | | | | | | | | | | Now that the blame viewer has a search panel, it should be taken into account by the focus transition code. Otherwise showing a commit tip (by accidentally moving the mouse to the text frame) causes the focus to transfer away from the search field. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Update German translation.Christian Stimming2008-11-01
| | | | | | | Not yet completed, though. Signed-off-by: Christian Stimming <stimming@tuhh.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Do not munge conflict marker lines in a normal diffJohannes Sixt2008-11-01
| | | | | | | | | | | | | | | | Previously, conflict markers were highlighted in two ways: (1) They received a distinguishing color; and (2) they had the '+' removed at the beginning of the line. However, by doing (2), a hunk that contained conflict markers could not be staged or unstaged because the resulting patch was corrupted. With this change we no longer modify the diff text of a 2-way diff, so that "Stage Hunk" and friends work. Note that 3-way diff of a conflicted file is unaffected by this change, and '++' before conflict markers is still removed. But this has no negative impact because in this mode staging hunks or lines is disabled anyway. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add a simple implementation of SSH_ASKPASS.Alexander Gavrilov2008-11-01
| | | | | | | | | | | | | | | | OpenSSH allows specifying an external program to use for direct user interaction. While most Linux systems already have such programs, some environments, for instance, msysgit, lack it. This patch adds a simple fallback Tcl implementation of the tool. In msysgit it is also necessary to set a fake value of the DISPLAY variable, because otherwise ssh won't even try to use SSH_ASKPASS handlers. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Acked-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add a dialog that shows the OpenSSH public key.Alexander Gavrilov2008-11-01
| | | | | | | | | | | | | | | | | | | | Generating a new SSH key or finding an existing one may be a difficult task for non-technical users, especially on Windows. This commit adds a new dialog that shows the public key, or allows the user to generate a new one if none were found. Since this is a convenience/informational feature for new users, and the dialog is mostly read-only, it is located in the Help menu. The command line used to invoke ssh-keygen is designed to force it to use SSH_ASKPASS if available, or accept empty passphrases, but _never_ wait for user response on the tty. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Acked-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Mark-up strings in show_{other,unmerged}_diff() for localizationJohannes Sixt2008-10-10
| | | | | Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Show a round number of bytes of large untracked text filesJohannes Sixt2008-10-10
| | | | | | | | | | | | | | If an untracked text file is selected, then its contents are displayed instead of a diff. If the file is large, then the following hint is inserted at the top: * Untracked file is 14774881 bytes. * Showing only first 131072 bytes. Why exactly 131072 bytes? With this patch it is 100000 bytes. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix the blame viewer destroy handler.Alexander Gavrilov2008-10-10
| | | | | | | | | It did not delete the object, which is not very good. Also, destroy may be fired up for subwindows, so we should check %W. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add a search command to the blame viewer.Alexander Gavrilov2008-10-10
| | | | | | | | | | | | | | | | | | | One of the largest deficiencies in the blame viewer at the moment is the impossibility to search for a text string. This commit fixes it by adding a Firefox-like search panel to the viewer. The panel can be shown by pressing F7 or clicking a menu entry, and is hidden by pressing Esc. Find Next is available through the F3 key. Implementation is based on the gitk code, but heavily refactored. It now also supports case-insensitive searches, and uses the text box background color to signal success or failure of the search. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix the blame window shape.Alexander Gavrilov2008-10-10
| | | | | | | | | | | | | | On modern high-resolution monitors the blame viewer window is very high, yet too narrow. This patch makes it gravitate to a more sane resolution, which takes the font size into account. It also changes the default text view size to 80% of the window, and slightly modifies the border decorations for better appearance. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix switch statement in lib/merge.tclJohannes Sixt2008-10-10
| | | | | | | | | 0aea2842 (Make Ctrl-T safe to use for conflicting files) introduced a new case, but forgot the '-' to indicate that it shares the body with the subsequent case label. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix fetching from remotes when adding themPetr Baudis2008-09-30
| | | | | | | | As you can see, this particular code branch did not see a lot of testing for some time now. Apologies for that. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Fix removing non-pushable remotesPetr Baudis2008-09-30
| | | | | | | | | Git-gui does not add most of the remotes to the 'push' menu since they are missing the "Push" line in their remotespec. In that case, removing the remote would end up with an error. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Make input boxes in init/clone/open dialogs consistentPetr Baudis2008-09-30
| | | | | | | | | Before, the input boxes would not be sunken and would have larger border, which is inconsistent with the rest of the inputboxes for repository locations in the git-gui UI. Signed-off-by: Petr Baudis <petr.baudis@novartis.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Avoid using the term URL when specifying repositoriesPetr Baudis2008-09-30
| | | | | | | | | | Instead, 'Location' is used to label such inputs; in the Clone dialog, 'Source' and 'Target' are also introduced to further clarify the situation. The intent is to increase GUI consistency in the case location templates (upcoming) are used - then, other locators than URL may be used. Signed-off-by: Petr Baudis <petr.baudis@novartis.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: gui.autoexplore makes explorer to pop up automatically after pickingPetr Baudis2008-09-30
| | | | | | | | | | | | Especially for Windows users used to work with the Windows Explorer, it is very useful when after picking a repository (either opening a local one or initializing/cloning a new one) in the "intro" window, the explorer view of the working copy pops up along the standard Git GUI window, so that the users can, well, actually work with the repository. Signed-off-by: Petr Baudis <petr.baudis@novartis.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Add Explore Working Copy to the Repository menuPetr Baudis2008-09-30
| | | | | | | | | | | | | | | | | | Especially when cloning is finished, the Git GUI window pops up, but there is not really much one can do within it - there needs to be a way to easily start exploring and working with the new working copy using the standard system interface: explorer.exe on Windows, open on MacOS/X and xdg-open as a fallback (all modern Linux desktops). This might be also a post-clone option instead (possibly opening the window automagically) but I believe that this might be useful also in other situations, e.g. you don't have to keep the working copy window around if you work in multiple repositories. This operation will not make sense on bare repositories. Signed-off-by: Petr Baudis <petr.baudis@novartis.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* git-gui: Use git web--browser for web browsingPetr Baudis2008-09-30
| | | | | | | | | | | | | This patch removes git-gui specific webbrowser guessing and instead relies on git web--browser to do the right thing, removing unnecessary code duplication. New function start_browser encapsulates the browser execution, for usage from other parts of code. This will also make git-gui show the documentation menu item even in cases it might not be able to start up a browser, these cases should be however only very rare. Signed-off-by: Petr Baudis <petr.baudis@novartis.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>