Merge git-gui
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>
This commit is contained in:
commit
b4d2b04c9b
3
git-gui/.gitignore
vendored
Normal file
3
git-gui/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
GIT-VERSION-FILE
|
||||||
|
git-citool
|
||||||
|
git-gui
|
46
git-gui/GIT-VERSION-GEN
Executable file
46
git-gui/GIT-VERSION-GEN
Executable file
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
48
git-gui/Makefile
Normal file
48
git-gui/Makefile
Normal file
@ -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
|
44
git-gui/TODO
Normal file
44
git-gui/TODO
Normal file
@ -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.
|
5924
git-gui/git-gui.sh
Executable file
5924
git-gui/git-gui.sh
Executable file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user