summaryrefslogtreecommitdiff
path: root/git-gui
AgeCommit message (Collapse)AuthorFilesLines
2007-05-28Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano2-10/+19
* 'maint' of git://repo.or.cz/git-gui: git-gui: Guess our share/git-gui/lib path at runtime if possible Correct key bindings to Control-<foo> git-gui: Tighten internal pattern match for lib/ directory
2007-05-17Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano2-4/+44
* 'master' of git://repo.or.cz/git-gui: git-gui: Gracefully handle bad TCL_PATH at compile time
2007-05-10Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano9-345/+513
* 'master' of git://repo.or.cz/git-gui: git gui 0.7.0 git-gui: Paperbag fix blame in subdirectory git-gui: Format author/committer times in ISO format git-gui: Cleanup minor nits in blame code git-gui: Generate blame on uncommitted working tree file git-gui: Smarter command line parsing for browser, blame git-gui: Use prefix if blame is run in a subdirectory git-gui: Convert blame to the "class" way of doing things git-gui: Don't attempt to inline array reads in methods git-gui: Convert browser, console to "class" format git-gui: Define a simple class/method system git-gui: Allow shift-{k,j} to select a range of branches to merge git-gui: Call changes "Staged" and "Unstaged" in file list titles.
2007-05-07Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Shawn O. Pearce17-4016/+3996
* 'master' of git://repo.or.cz/git-gui: git-gui: Use vi-like keys in merge dialog git-gui: Include commit id/subject in merge choices git-gui: Show all possible branches for merge git-gui: Move merge support into a namespace git-gui: Allow vi keys to scroll the diff/blame regions git-gui: Move console procs into their own namespace git-gui: Refactor into multiple files to save my sanity git-gui: Track our own embedded values and rebuild when they change git-gui: Refactor to use our git proc more often git-gui: Use option database defaults to set the font git-gui: Cleanup common font handling for font_ui git-gui: Correct line wrapping for too many branch message git-gui: Warn users before making an octopus merge git-gui: Include the subject in the status bar after commit Also perform an evil merge change to update Git's main Makefile to pass the proper options down into git-gui now that it depends on reasonable values for 'sharedir' and 'TCL_PATH'. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-05-07Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano1-20/+26
* 'master' of git://repo.or.cz/git-gui: git-gui: Correctly handle UTF-8 encoded commit messages
2007-05-07Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: Documentation: don't reference non-existent 'git-cvsapplycommit' user-manual: stop deprecating the manual user-manual: miscellaneous editing user-manual: fix .gitconfig editing examples user-manual: clean up fast-forward and dangling-objects sections user-manual: add section ID's user-manual: more discussion of detached heads, fix typos git-gui: Allow spaces in path to 'wish' gitk: Allow user to choose whether to see the diff, old file, or new file
2007-05-07Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano1-1/+1
* 'maint' of git://repo.or.cz/git-gui: git-gui: Allow spaces in path to 'wish'
2007-04-17Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano2-74/+91
* 'master' of git://repo.or.cz/git-gui: git-gui: Honor TCLTK_PATH if supplied Revert "Allow wish interpreter to be defined with TCLTK_PATH" git-gui: Display the directory basename in the title git-gui: Brown paper bag fix division by 0 in blame Always bind the return key to the default button Do not break git-gui messages into multiple lines. Improve look-and-feel of the git-gui tool. Teach git-gui to use the user-defined UI font everywhere. Allow wish interpreter to be defined with TCLTK_PATH
2007-04-17Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano1-4/+6
* 'maint' of git://repo.or.cz/git-gui: git-gui: Brown paper bag fix division by 0 in blame
2007-03-12Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano1-0/+5
* 'master' of git://repo.or.cz/git-gui: git-gui: Support of "make -s" in: do not output anything of the build itself
2007-03-12Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano4-156/+15
* 'maint' of git://repo.or.cz/git-gui: git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-06Merge branch 'master' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano2-37/+69
* 'master' of git://repo.or.cz/git-gui: git-gui: Make 'make' quieter by default git-gui: Remove unnecessary /dev/null redirection. git-gui: Don't create empty (same tree as parent) commits. git-gui: Add Reset to the Branch menu. git-gui: Relocate the menu/transport menu code.
2007-02-24Merge git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano1-6/+19
* git://repo.or.cz/git-gui: Don't modify CREDITS-FILE if it hasn't changed.
2007-02-21Merge branch 'master' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano6-120/+308
* 'master' of git://repo.or.cz/git-gui: git-gui: Don't crash in citool mode on initial commit. git-gui: Remove TODO list. git-gui: Include browser in our usage message. git-gui: Change summary of git-gui. git-gui: Display all authors of git-gui. git-gui: Use mixed path for docs on Cygwin. git-gui: Correct crash when saving options in blame mode. git-gui: Expose the browser as a subcommand. git-gui: Create new branches from a tag. git-gui: Prefer version file over git-describe. git-gui: Print version on the console. git-gui: More consistently display the application name. git-gui: Permit merging tags into the current branch. git-gui: Basic version check to ensure git 1.5.0 or later is used. git-gui: Refactor 'exec git subcmd' idiom.
2007-02-13Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano1-1/+1
* 'master' of git://repo.or.cz/git-gui: git-gui: fix typo in GIT-VERSION-GEN, "/dev/null" not "/devnull"
2007-02-12Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano3-19/+58
* 'master' of git://repo.or.cz/git-gui: git-gui: Change base version to 0.6. git-gui: Guess our version accurately as a subproject. git-gui: Handle gitgui tags in version gen. git-gui: Generate a version file on demand. git-gui: Rename GIT_VERSION to GITGUI_VERSION. git-gui: Allow gitexecdir, INSTALL to be set by the caller.
2007-02-11Merge git-guiLibravatar Junio C Hamano5-0/+6065
This merges git-gui project of Shawn as a subproject of git.git at git-gui/ subdirectory. This merge only melds two histories together. The toplevel Makefile does not even know about git-gui yet. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-01-21git-gui: Modified makefile to embed version into git-gui script.Libravatar Shawn O. Pearce1-3772/+0
We want to embed the version of git-gui directly into the script file, so that we can display it properly in the about dialog. Consequently I've refactored the Makefile process to act like the one in core git.git with regards to shell scripts, allowing git-gui to be constructed by a sed replacement performed on git-gui.sh. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Hide the ugly bash command line from the windows desktop icon.Libravatar Shawn O. Pearce1-1/+1
The user really doesn't need to see the technical details of how we launch git-gui from within their "desktop icon". Instead we should hide the command line from being displayed when the icon launches by putting @ at the start of the line. If they really need to see the command we are running they can edit the batch file. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Change more 'include' language to 'add'.Libravatar Shawn O. Pearce1-7/+7
I just found a whole slew of places where we still were using the term 'include' rather than 'add' to refer to the act of updating the index with modifications from the working directory. To be consistent with all Git documentation and command line tools, these should be 'add'. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Work around odd cygpath bug on Windows.Libravatar Shawn O. Pearce1-1/+1
There appears to be a bug on one of my test systems where cygpath with the --long-name option is generating a corrupt string that does not actually refer to sh.exe. This breaks any desktop icon created by git-gui as the executable we are trying to invoke does not exist. Since Cygwin is typically installed as C:\cygwin long path names is probably not actually necessary to link to the shell. I also added a small echo to the start of the icon script, as it can take one of my test systems several seconds to startup git-gui. This way the user knows we're starting git-gui, and was politely asked to wait for the action to complete. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Correct wording of the revert confirmation dialog.Libravatar Shawn O. Pearce1-2/+2
We no longer describe updating the index as including changes, as we now use the add notation used by core Git's command line tools. So its confusing to be talking about unincluded changes within the revert dialog. Instead we should used language like 'unadded changes'. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Corrected behavior of deleted (but existing in HEAD) files.Libravatar Shawn O. Pearce1-0/+2
Apparently I did not account for the D_ file state. This can occur when a file has been marked for deletion by deleting it from the index, and the file also does not exist in the working directory. Typically this happens when the user deletes the file, hits Rescan, then includes the missing file in the commit, then hits Rescan again. We don't find the file in the working directory but its been removed in the index, so the state becomes D_. This state should be identical with DD. I'm not entirely sure why DD occurs sometimes and D_ others, it would seem like D_ is the state that should be happening instead of DD, leading me to believe there is a quirk in git-gui's state manipulation code. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Run git-gc rather than git-repack.Libravatar Shawn O. Pearce1-9/+5
Now that git 1.5.0-rc1 and later has a 'git gc' command which performs all important repository management activites (including reflog pruning, repacking local objects, unnecessary loose object pruning and rerere cache expiration) we should run 'gc' when the user wants us to cleanup their object database for them. I think the name 'gc' is horrible for a GUI application like git-gui, so I'm labeling the menu action 'Compress Database' instead. Hopefully this will provide some clue to the user about what the action does. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Show all fetched branches for remote pulls.Libravatar Shawn O. Pearce1-8/+9
Loop through every remote.<name>.fetch entry and add it as a valid option in the Pull menu. This way users can pull any remote branch that they track, without needing to leave the gui. Its a rather crude work around for not having a full merge interface. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Created very crude Tools menu, to support miga.Libravatar Shawn O. Pearce1-0/+29
In one particular case I have a tool called 'miga' which users may need to invoke on their repository. This is a homegrown tool which is not (and should be) part of git-gui, but I still want to be able to run it from within the gui. Right now I'm taking a shortcut and adding it to the Tools menu if we are not on Mac OS X and the support script used to launch the tool exists in the local filesystem. This is nothing but a complete and utter hack. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-01-21git-gui: Reworded 'Include' to 'Add' to match core Git.Libravatar Shawn O. Pearce1-3/+3
Now that git-add is a first class citizen in core Git (Nico's 366bfcb6) users may start to expect the term 'add' to refer to the act of including a file's changes into a commit. So I'm replacing all uses of the term 'Include' in the UI with 'Add'. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-27git-gui: Auto-update any A? or M? files during rescan.Libravatar Shawn O. Pearce1-2/+2
If the user has partial includes disabled then it doesn't matter what state the working directory is in; if the file has been included in the next commit its index state is A or M and we should immediately run update-index on the working directory file to bring the index in sync with the working directory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-27git-gui: Enable resolution of merge conflicts.Libravatar Shawn O. Pearce1-0/+3
If a file has a merge conflict (index state = U) the user will need to run update-index on that file to resolve all stages down to stage 0, by including the file in the working directory. Like core Git we'll just trust the user that their resolution is correct, and that they didn't just include the file into the commit while merge conflicts still exist within the file. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Set a proper title on our revert confirm dialog box.Libravatar Shawn O. Pearce1-2/+7
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Started implementation of switch_branch.Libravatar Shawn O. Pearce1-1/+50
This implementation of switch_branch is not yet finished, and thus it throws a "NOT FINISHED" error rather than completing the switch. But its a rough sketch of the procedure required. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Misc. comment and formatting cleanups.Libravatar Shawn O. Pearce1-7/+10
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Rename all_branches -> all_heads.Libravatar Shawn O. Pearce1-8/+8
Since this list is really the set of refs which match "refs/heads/*" it really is the set of heads and not necessarily the set of all branches, as the remote tracking branches are not listed in this set, even if it appears in the "refs/heads/*" namespace (e.g. an old style repository). Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Automatically skip tracking branches in branch menu.Libravatar Shawn O. Pearce1-9/+37
Since the user should not work on a tracking branch we automatically hide any branch which is used as a tracking branch by either a remote.<name>.fetch config entry or by a Pull: line in a remotes file. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Abort on not implemented branch switching.Libravatar Shawn O. Pearce1-1/+5
I'm not currently ready to implement branch switching, so I'm just going to punt on it for now. :-) Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-25git-gui: Parse off refs/remotes when showing current branch.Libravatar Shawn O. Pearce1-1/+1
Even though the user shouldn't have a remote branch checked out, if they do we should still show as short of the branch name as possible. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-24git-gui: Created Branch menu.Libravatar Shawn O. Pearce1-0/+61
This is an early start at branch management from within git-gui. The branch menu has create/delete command entries to create and delete branches as well as a list of radiobutton entries for each branch found in the repository through for-each-ref. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-24git-gui: Support file state MD (modified/deleted).Libravatar Shawn O. Pearce1-0/+3
Apparently I missed the file state MD, which is a file modified and updated in the index but then removed from the working directory. This should be treated just like AD, an added file which has been deleted from the working directory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-24git-gui: Display the current branch.Libravatar Shawn O. Pearce1-1/+30
Users want to know what branch they are sitting on before making a commit, as they may need to switch to a different branch first. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-23git-gui: Added revert changes command.Libravatar Shawn O. Pearce1-7/+177
Users sometimes need to be able to throw away locally modified files in order to go back to the last committed version of that file. To perform a revert the user must first uninclude each file from the new commit as the working file must at least partially match the index, and we use git-checkout-index to update the working directory. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-22git-gui: Improve pull error dialogs.Libravatar Shawn O. Pearce1-7/+11
Just like prior to a commit its only an informational message that we refuse to perform a pull on a dirty working directory. Therefore we should not use an error icon. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Don't start 'gitk --all' on Mac OS X.Libravatar Shawn O. Pearce1-4/+6
Since gitk is currently broken on Mac OS X and is unable to start itself when given command line parameters just don't offer the "Visual All Branches" menu option on Mac OS X. Once this feature of gitk is fixed we should change this section of code to make sure a working version of gitk will be executed before we offer the option up to the user. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Added menu command to visualize all branches.Libravatar Shawn O. Pearce1-13/+26
Sometimes its useful to start gitk with the --all option, to view all of the known branches and tags within this repository. Rather than making the user startup gitk and then edit the view we can pass the option along for them. This also makes it slightly more explicit, that when gitk starts up by default its showing the current branch and not everything. Yes gitk isn't showing that to the user, but the fact that the user had to make a decision between seeing this current branch or all branches will hopefully make them study gitk's display before jumping to a conclusion. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Refactor M1 binding selection.Libravatar Shawn O. Pearce1-2/+3
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Warn Cygwin users about possible environment issues.Libravatar Shawn O. Pearce1-1/+81
Because the Tcl binary distributed with Cygwin tends to not pass along its own environment (the env array) to its children, its unlikely that any Git commands spawned by git-gui will receive the same environment variables that git-gui itself received from the shell which started it. If the user is counting on environment variables to pass down, like say GIT_INDEX_FILE, they may not, so we warn them during git-gui startup that things may not work out as the user intended. Perhaps one day when git-gui and git are running on native Windows (rather than through the Cygwin emulation layers) things will work better. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Correct is_MacOSX platform test.Libravatar Shawn O. Pearce1-3/+1
Darwn based UNIX systems are not necessarily Mac OS X. However the only windowing system used by Tk that is Mac OS X is 'aqua', and only 'aqua' exists on Mac OS X. Therefore this is a more reliable test for the Macintosh platform. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Abstract out windows platform test to is_Windows proc.Libravatar Shawn O. Pearce1-14/+20
Like the is_MacOSX proc we shouldn't keep repeating the platform test for Windows. Instead abstract the code out into a procedure and use the procedure whenever we need to do something special. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Include the Tcl/Tk version in the about dialog.Libravatar Shawn O. Pearce1-3/+12
Users may need to know what version of Tcl they are running git-gui under, in case there is an interesting interface quirk or other compatability problem we don't know about right now that we may need to explore (and maybe fix). Since its simple enough to show a line with this version data we should do so. We also try to reduce the amount of text shown as often the Tcl and Tk version numbers will be identical; when this happens we should only show the one version number. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Make the copyright notice serve double duty.Libravatar Shawn O. Pearce1-10/+11
The copyright notice we display in the about dialog should be the same as the one at the top of our source code. By putting the copyright notice that appears at the top of our source code into a global variable rather than a comment we can trivially make them the same at all times. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2006-11-21git-gui: Be more Macintosh like.Libravatar Shawn O. Pearce1-11/+29
It is tradition for applications to store their about and preferences menu options within the application menu. This is the first menu in the menu bar, just after the apple menu. Apparently the way to access this menu from Tk on Mac OS X systems is to create a special menu whose name ends in ".apple" and place it into the menu bar. So now if we are on Mac OS X we move our about menu and our options menu into the application menu, like other Mac OS X applications. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>