Merge branch 'maint'
* maint: 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
This commit is contained in:
commit
2ec0cb7959
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,3 @@
|
||||
CREDITS-FILE
|
||||
GIT-VERSION-FILE
|
||||
git-citool
|
||||
git-gui
|
||||
|
71
CREDITS-GEN
71
CREDITS-GEN
@ -1,71 +0,0 @@
|
||||
#!/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 "$2" &&
|
||||
git shortlog -n -s $tip | sed 's/: .*$//' >"$2" || 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.
|
||||
#
|
||||
|
||||
credits_tmp=/var/tmp/gitgui-credits-$$
|
||||
trap 'rm -f "$credits_tmp"' 0
|
||||
|
||||
orig="$credits_tmp"
|
||||
|
||||
if test -f credits
|
||||
then
|
||||
orig=credits
|
||||
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 "$orig" || exit
|
||||
elif tip="$(git rev-parse --verify HEAD 2>/dev/null)" &&
|
||||
test -n "$tip"
|
||||
then
|
||||
generate_credits $tip "$orig" || exit
|
||||
else
|
||||
echo "error: Cannot locate authorship information." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -f "$orig" && cmp -s "$orig" "$CF"
|
||||
then
|
||||
: noop
|
||||
else
|
||||
rm -f "$CF" &&
|
||||
cat "$orig" >"$CF"
|
||||
fi
|
||||
|
23
Makefile
23
Makefile
@ -7,8 +7,9 @@ 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 = git-gui $(GITGUI_BUILT_INS)
|
||||
ALL_PROGRAMS = $(GITGUI_BUILT_INS) $(patsubst %.sh,%,$(SCRIPT_SH))
|
||||
|
||||
ifndef SHELL_PATH
|
||||
SHELL_PATH = /bin/sh
|
||||
@ -36,24 +37,20 @@ DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
||||
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
|
||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||
|
||||
git-gui: git-gui.sh GIT-VERSION-FILE CREDITS-FILE
|
||||
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
|
||||
$(QUIET_GEN)rm -f $@ $@+ && \
|
||||
sed -n \
|
||||
-e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
|
||||
sed -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
|
||||
$(QUIET_GEN)$(SHELL_PATH) ./CREDITS-GEN
|
||||
|
||||
$(GITGUI_BUILT_INS): git-gui
|
||||
$(QUIET_BUILT_IN)rm -f $@ && ln git-gui $@
|
||||
|
||||
# These can record GITGUI_VERSION
|
||||
$(patsubst %.sh,%,$(SCRIPT_SH)): GIT-VERSION-FILE
|
||||
|
||||
all:: $(ALL_PROGRAMS)
|
||||
|
||||
install: all
|
||||
@ -61,14 +58,12 @@ install: all
|
||||
$(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: CREDITS-FILE
|
||||
dist-version:
|
||||
@mkdir -p $(TARDIR)
|
||||
@echo $(GITGUI_VERSION) > $(TARDIR)/version
|
||||
@cat CREDITS-FILE > $(TARDIR)/credits
|
||||
|
||||
clean::
|
||||
rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE CREDITS-FILE
|
||||
rm -f $(ALL_PROGRAMS) GIT-VERSION-FILE
|
||||
|
||||
.PHONY: all install dist-version clean
|
||||
.PHONY: .FORCE-GIT-VERSION-FILE
|
||||
.PHONY: .FORCE-CREDITS-FILE
|
||||
|
76
git-gui.sh
76
git-gui.sh
@ -19,9 +19,6 @@ GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA}
|
||||
set gitgui_credits {
|
||||
Paul Mackerras
|
||||
}
|
||||
|
||||
######################################################################
|
||||
##
|
||||
@ -302,6 +299,11 @@ proc ask_popup {msg} {
|
||||
##
|
||||
## version check
|
||||
|
||||
if {{--version} eq $argv || {version} eq $argv} {
|
||||
puts "git-gui version $appvers"
|
||||
exit
|
||||
}
|
||||
|
||||
set req_maj 1
|
||||
set req_min 5
|
||||
|
||||
@ -1171,7 +1173,7 @@ File [short_path $path] cannot be committed by this program.
|
||||
}
|
||||
}
|
||||
}
|
||||
if {!$files_ready} {
|
||||
if {!$files_ready && ![string match *merge $curType]} {
|
||||
info_popup {No changes to commit.
|
||||
|
||||
You must add at least 1 file before you can commit.
|
||||
@ -4492,61 +4494,6 @@ proc do_commit {} {
|
||||
commit_tree
|
||||
}
|
||||
|
||||
proc do_credits {} {
|
||||
global gitgui_credits
|
||||
|
||||
set w .credits_dialog
|
||||
|
||||
toplevel $w
|
||||
wm geometry $w "+[winfo rootx .]+[winfo rooty .]"
|
||||
|
||||
label $w.header -text {git-gui Contributors} -font font_uibold
|
||||
pack $w.header -side top -fill x
|
||||
|
||||
frame $w.buttons
|
||||
button $w.buttons.close -text {Close} \
|
||||
-font font_ui \
|
||||
-command [list destroy $w]
|
||||
pack $w.buttons.close -side right
|
||||
pack $w.buttons -side bottom -fill x -pady 10 -padx 10
|
||||
|
||||
frame $w.credits
|
||||
text $w.credits.t \
|
||||
-background [$w.header cget -background] \
|
||||
-yscrollcommand [list $w.credits.sby set] \
|
||||
-width 20 \
|
||||
-height 10 \
|
||||
-wrap none \
|
||||
-borderwidth 1 \
|
||||
-relief solid \
|
||||
-padx 5 -pady 5 \
|
||||
-font font_ui
|
||||
scrollbar $w.credits.sby -command [list $w.credits.t yview]
|
||||
pack $w.credits.sby -side right -fill y
|
||||
pack $w.credits.t -fill both -expand 1
|
||||
pack $w.credits -side top -fill both -expand 1 -padx 5 -pady 5
|
||||
|
||||
label $w.desc \
|
||||
-text "All portions are copyrighted by their respective authors
|
||||
and are distributed under the GNU General Public License." \
|
||||
-padx 5 -pady 5 \
|
||||
-justify left \
|
||||
-anchor w \
|
||||
-borderwidth 1 \
|
||||
-relief solid \
|
||||
-font font_ui
|
||||
pack $w.desc -side top -fill x -padx 5 -pady 5
|
||||
|
||||
$w.credits.t insert end "[string trim $gitgui_credits]\n"
|
||||
$w.credits.t conf -state disabled
|
||||
$w.credits.t see 1.0
|
||||
|
||||
bind $w <Visibility> "grab $w; focus $w"
|
||||
bind $w <Key-Escape> [list destroy $w]
|
||||
wm title $w [$w.header cget -text]
|
||||
tkwait window $w
|
||||
}
|
||||
|
||||
proc do_about {} {
|
||||
global appvers copyright
|
||||
global tcl_patchLevel tk_patchLevel
|
||||
@ -4563,10 +4510,6 @@ proc do_about {} {
|
||||
button $w.buttons.close -text {Close} \
|
||||
-font font_ui \
|
||||
-command [list destroy $w]
|
||||
button $w.buttons.credits -text {Contributors} \
|
||||
-font font_ui \
|
||||
-command do_credits
|
||||
pack $w.buttons.credits -side left
|
||||
pack $w.buttons.close -side right
|
||||
pack $w.buttons -side bottom -fill x -pady 10 -padx 10
|
||||
|
||||
@ -5116,8 +5059,6 @@ enable_option branch
|
||||
enable_option transport
|
||||
|
||||
switch -- $subcommand {
|
||||
--version -
|
||||
version -
|
||||
browser -
|
||||
blame {
|
||||
disable_option multicommit
|
||||
@ -5488,11 +5429,6 @@ bind all <$M1B-Key-W> {destroy [winfo toplevel %W]}
|
||||
# -- Not a normal commit type invocation? Do that instead!
|
||||
#
|
||||
switch -- $subcommand {
|
||||
--version -
|
||||
version {
|
||||
puts "git-gui version $appvers"
|
||||
exit
|
||||
}
|
||||
browser {
|
||||
if {[llength $argv] != 1} {
|
||||
puts stderr "usage: $argv0 browser commit"
|
||||
|
Loading…
Reference in New Issue
Block a user