Browse Source
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>maint
Junio C Hamano
18 years ago
5 changed files with 6065 additions and 0 deletions
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
GIT-VERSION-FILE |
||||
git-citool |
||||
git-gui |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh |
||||
|
||||
GVF=GIT-VERSION-FILE |
||||
DEF_VER=v0.5.GIT |
||||
|
||||
LF=' |
||||
' |
||||
|
||||
# First try git-describe, then see if there is a version file |
||||
# (included in release tarballs), then default |
||||
if VN=$(git describe --abbrev=4 HEAD 2>/dev/null) && |
||||
case "$VN" in |
||||
*$LF*) (exit 1) ;; |
||||
v[0-9]*) : happy ;; |
||||
esac |
||||
then |
||||
VN=$(echo "$VN" | sed -e 's/-/./g'); |
||||
elif test -f version |
||||
then |
||||
VN=$(cat version) || VN="$DEF_VER" |
||||
else |
||||
VN="$DEF_VER" |
||||
fi |
||||
|
||||
VN=$(expr "$VN" : v*'\(.*\)') |
||||
|
||||
dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty= |
||||
case "$dirty" in |
||||
'') |
||||
;; |
||||
*) |
||||
VN="$VN-dirty" ;; |
||||
esac |
||||
|
||||
if test -r $GVF |
||||
then |
||||
VC=$(sed -e 's/^GIT_VERSION = //' <$GVF) |
||||
else |
||||
VC=unset |
||||
fi |
||||
test "$VN" = "$VC" || { |
||||
echo >&2 "GIT_VERSION = $VN" |
||||
echo "GIT_VERSION = $VN" >$GVF |
||||
} |
||||
|
||||
|
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
all:: |
||||
|
||||
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE |
||||
@$(SHELL_PATH) ./GIT-VERSION-GEN |
||||
-include GIT-VERSION-FILE |
||||
|
||||
SCRIPT_SH = git-gui.sh |
||||
GITGUI_BUILT_INS = git-citool |
||||
ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH)) |
||||
|
||||
ifndef SHELL_PATH |
||||
SHELL_PATH = /bin/sh |
||||
endif |
||||
|
||||
gitexecdir := $(shell git --exec-path) |
||||
INSTALL = install |
||||
|
||||
DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) |
||||
gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) |
||||
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) |
||||
|
||||
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh |
||||
rm -f $@ $@+ |
||||
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ |
||||
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ |
||||
$@.sh >$@+ |
||||
chmod +x $@+ |
||||
mv $@+ $@ |
||||
|
||||
$(GITGUI_BUILT_INS): git-gui |
||||
rm -f $@ && ln git-gui $@ |
||||
|
||||
# These can record GIT_VERSION |
||||
$(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE |
||||
|
||||
all:: $(ALL_PROGRAMS) |
||||
|
||||
install: all |
||||
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
||||
$(INSTALL) git-gui '$(DESTDIR_SQ)$(gitexecdir_SQ)' |
||||
$(foreach p,$(GITGUI_BUILT_INS), rm -f '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' && ln '$(DESTDIR_SQ)$(gitexecdir_SQ)/git-gui' '$(DESTDIR_SQ)$(gitexecdir_SQ)/$p' ;) |
||||
|
||||
clean:: |
||||
rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE |
||||
|
||||
.PHONY: all install clean |
||||
.PHONY: .FORCE-GIT-VERSION-FILE |
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
Items outstanding: |
||||
|
||||
* Add file to .gitignore or info/excludes. |
||||
|
||||
* Populate the pull menu with local branches. |
||||
|
||||
* Make use of the new default merge data stored in repo-config. |
||||
|
||||
* Checkout a different local branch. |
||||
|
||||
* Push any local branch to a remote branch. |
||||
|
||||
* Merge any local branches through a real merge UI. |
||||
|
||||
* Allow user to define keyboard shortcuts for frequently used fetch |
||||
or merge operations. Or maybe just define a keyboard shortcut |
||||
for default fetch/default merge of current branch is enough; |
||||
but I do know a few users who merge a couple of common branches |
||||
also into the same branch so one default isn't quite enough. |
||||
|
||||
* Better organize fetch/push/pull console windows. |
||||
|
||||
* Clone UI (to download a new repository). |
||||
|
||||
* Remotes editor (for .git/config format only). |
||||
|
||||
* Show a shortlog of the last couple of commits in the main window, |
||||
to give the user warm fuzzy feelings that we have their data |
||||
saved. Actually this may be the set of commits not yet in |
||||
the upstream (aka default merge branch remote repository). |
||||
|
||||
* GUI configuration editor for options listed in |
||||
git.git/Documentation/config.txt. Ideally this would |
||||
parse that file and generate the options dialog from |
||||
the documentation itself, and include the help text |
||||
from the documentation as part of the UI somehow. |
||||
|
||||
Known bugs: |
||||
|
||||
* git-gui sometimes just closes on Windows with no error message. |
||||
I'm not sure what the problem is here. I suspect the wish |
||||
process is just terminating due to a segfault or something, |
||||
as the do_quit proc in git-gui doesn't run. It often seems to |
||||
occur while writing a commit message in the buffer. Odd. |
Loading…
Reference in new issue