Skip to content

Commit

Permalink
Merge branch 'master' of git://repo.or.cz/git-gui into maint
Browse files Browse the repository at this point in the history
* '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.
  • Loading branch information
Junio C Hamano committed Feb 21, 2007
2 parents c750da2 + 9811937 commit 5bac4a6
Show file tree
Hide file tree
Showing 6 changed files with 308 additions and 120 deletions.
1 change: 1 addition & 0 deletions git-gui/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
CREDITS-FILE
GIT-VERSION-FILE
git-citool
git-gui
58 changes: 58 additions & 0 deletions git-gui/CREDITS-GEN
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh

CF=CREDITS-FILE
tip=

tree_search ()
{
head=$1
tree=$2
for p in $(git rev-list --parents --max-count=1 $head 2>/dev/null)
do
test $tree = $(git rev-parse $p^{tree} 2>/dev/null) &&
vn=$(git describe --abbrev=4 $p 2>/dev/null) &&
case "$vn" in
gitgui-[0-9]*) echo $p; break;;
esac
done
}

generate_credits ()
{
tip=$1 &&
rm -f $CF &&
git shortlog -n -s $tip | sed 's/: .*$//' >$CF || exit
}

# Always use the tarball credits file if found, just
# in case we are somehow contained in a larger git
# repository that doesn't actually track our state.
# (At least one package manager is doing this.)
#
# We may be a subproject, so try looking for the merge
# commit that supplied this directory content if we are
# not at the toplevel. We probably will always be the
# second parent in the commit, but we shouldn't rely on
# that fact.
#

if test -f credits
then
rm -f $CF &&
cp credits $CF || exit
elif prefix="$(git rev-parse --show-prefix 2>/dev/null)" &&
test -n "$prefix" &&
head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
tree=$(git rev-parse --verify "HEAD:$prefix" 2>/dev/null) &&
tip=$(tree_search $head $tree) &&
test -n "$tip"
then
generate_credits $tip || exit
elif tip="$(git rev-parse --verify HEAD 2>/dev/null)" &&
test -n "$tip"
then
generate_credits $tip || exit
else
echo "error: Cannot locate authorship information." >&2
exit 1
fi
17 changes: 11 additions & 6 deletions git-gui/GIT-VERSION-GEN
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,25 @@ tree_search ()
done
}

# Always use the tarball version file if found, just
# in case we are somehow contained in a larger git
# repository that doesn't actually track our state.
# (At least one package manager is doing this.)
#
# We may be a subproject, so try looking for the merge
# commit that supplied this directory content if we are
# not at the toplevel. We probably will always be the
# second parent in the commit, but we shouldn't rely on
# that fact.
#
# If we are at the toplevel or the merge assumption fails
# try looking for a gitgui-* tag, or fallback onto the
# distributed version file.
# try looking for a gitgui-* tag.

if prefix="$(git rev-parse --show-prefix 2>/dev/null)"
if test -f version &&
VN=$(cat version)
then
: happy
elif prefix="$(git rev-parse --show-prefix 2>/dev/null)"
test -n "$prefix" &&
head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
tree=$(git rev-parse --verify "HEAD:$prefix" 2>/dev/null) &&
Expand All @@ -48,9 +56,6 @@ elif VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
esac
then
VN=$(echo "$VN" | sed -e 's/^gitgui-//;s/-/./g');
elif test -f version
then
VN=$(cat version) || VN="$DEF_VER"
else
VN="$DEF_VER"
fi
Expand Down
23 changes: 14 additions & 9 deletions git-gui/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ 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))
ALL_PROGRAMS = git-gui $(GITGUI_BUILT_INS)

ifndef SHELL_PATH
SHELL_PATH = /bin/sh
Expand All @@ -24,33 +23,39 @@ DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))

$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
git-gui: git-gui.sh GIT-VERSION-FILE CREDITS-FILE
rm -f $@ $@+
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
sed -n \
-e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
-e '1,/^set gitgui_credits /p' \
$@.sh >$@+
cat CREDITS-FILE >>$@+
sed -e '1,/^set gitgui_credits /d' $@.sh >>$@+
chmod +x $@+
mv $@+ $@

CREDITS-FILE: CREDITS-GEN .FORCE-CREDITS-FILE
$(SHELL_PATH) ./CREDITS-GEN

$(GITGUI_BUILT_INS): git-gui
rm -f $@ && ln git-gui $@

# These can record GITGUI_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' ;)

dist-version:
dist-version: CREDITS-FILE
@mkdir -p $(TARDIR)
@echo $(GITGUI_VERSION) > $(TARDIR)/version
@cat CREDITS-FILE > $(TARDIR)/credits

clean::
rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE
rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE CREDITS-FILE

.PHONY: all install dist-version clean
.PHONY: .FORCE-GIT-VERSION-FILE
.PHONY: .FORCE-CREDITS-FILE
44 changes: 0 additions & 44 deletions git-gui/TODO

This file was deleted.

Loading

0 comments on commit 5bac4a6

Please sign in to comment.