mirror of
https://github.com/git/git.git
synced 2026-01-18 06:34:21 +00:00
Merge branch 'master' into next
* master: t6006: do not write to /tmp git-instaweb: pass through invoking user's path to gitweb CGI scripts gitweb: simplify gitweb.min.* generation and clean-up rules tag -v: use RUN_GIT_CMD to run verify-tag t1010-mktree: Adjust expected result to code and documentation combined diff: correctly handle truncated file Document new "already-merged" rule for branch -d Add .depend directories to .gitignore
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -179,7 +179,7 @@
|
||||
*.exe
|
||||
*.[aos]
|
||||
*.py[co]
|
||||
*.o.d
|
||||
.depend/
|
||||
*+
|
||||
/config.mak
|
||||
/autom4te.cache
|
||||
|
||||
@@ -63,7 +63,9 @@ way to clean up all obsolete remote-tracking branches.
|
||||
OPTIONS
|
||||
-------
|
||||
-d::
|
||||
Delete a branch. The branch must be fully merged in HEAD.
|
||||
Delete a branch. The branch must be fully merged in its
|
||||
upstream branch, or in `HEAD` if no upstream was set with
|
||||
`--track` or `--set-upstream`.
|
||||
|
||||
-D::
|
||||
Delete a branch irrespective of its merged status.
|
||||
|
||||
@@ -147,11 +147,11 @@ static int delete_tag(const char *name, const char *ref,
|
||||
static int verify_tag(const char *name, const char *ref,
|
||||
const unsigned char *sha1)
|
||||
{
|
||||
const char *argv_verify_tag[] = {"git-verify-tag",
|
||||
const char *argv_verify_tag[] = {"verify-tag",
|
||||
"-v", "SHA1_HEX", NULL};
|
||||
argv_verify_tag[2] = sha1_to_hex(sha1);
|
||||
|
||||
if (run_command_v_opt(argv_verify_tag, 0))
|
||||
if (run_command_v_opt(argv_verify_tag, RUN_GIT_CMD))
|
||||
return error("could not verify the tag '%s'", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ static void consume_line(void *state_, char *line, unsigned long len)
|
||||
static void combine_diff(const unsigned char *parent, unsigned int mode,
|
||||
mmfile_t *result_file,
|
||||
struct sline *sline, unsigned int cnt, int n,
|
||||
int num_parent)
|
||||
int num_parent, int result_deleted)
|
||||
{
|
||||
unsigned int p_lno, lno;
|
||||
unsigned long nmask = (1UL << n);
|
||||
@@ -215,7 +215,7 @@ static void combine_diff(const unsigned char *parent, unsigned int mode,
|
||||
struct combine_diff_state state;
|
||||
unsigned long sz;
|
||||
|
||||
if (!cnt)
|
||||
if (result_deleted)
|
||||
return; /* result deleted */
|
||||
|
||||
parent_file.ptr = grab_blob(parent, mode, &sz);
|
||||
@@ -517,7 +517,7 @@ static void show_line_to_eol(const char *line, int len, const char *reset)
|
||||
}
|
||||
|
||||
static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent,
|
||||
int use_color)
|
||||
int use_color, int result_deleted)
|
||||
{
|
||||
unsigned long mark = (1UL<<num_parent);
|
||||
unsigned long no_pre_delete = (2UL<<num_parent);
|
||||
@@ -530,7 +530,7 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent,
|
||||
const char *c_plain = diff_get_color(use_color, DIFF_PLAIN);
|
||||
const char *c_reset = diff_get_color(use_color, DIFF_RESET);
|
||||
|
||||
if (!cnt)
|
||||
if (result_deleted)
|
||||
return; /* result deleted */
|
||||
|
||||
while (1) {
|
||||
@@ -687,6 +687,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
{
|
||||
struct diff_options *opt = &rev->diffopt;
|
||||
unsigned long result_size, cnt, lno;
|
||||
int result_deleted = 0;
|
||||
char *result, *cp;
|
||||
struct sline *sline; /* survived lines */
|
||||
int mode_differs = 0;
|
||||
@@ -767,6 +768,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
}
|
||||
else {
|
||||
deleted_file:
|
||||
result_deleted = 1;
|
||||
result_size = 0;
|
||||
elem->mode = 0;
|
||||
result = xcalloc(1, 1);
|
||||
@@ -823,7 +825,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
combine_diff(elem->parent[i].sha1,
|
||||
elem->parent[i].mode,
|
||||
&result_file, sline,
|
||||
cnt, i, num_parent);
|
||||
cnt, i, num_parent, result_deleted);
|
||||
if (elem->parent[i].mode != elem->mode)
|
||||
mode_differs = 1;
|
||||
}
|
||||
@@ -889,7 +891,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
||||
dump_quoted_path("+++ ", b_prefix, elem->path,
|
||||
c_meta, c_reset);
|
||||
dump_sline(sline, cnt, num_parent,
|
||||
DIFF_OPT_TST(opt, COLOR_DIFF));
|
||||
DIFF_OPT_TST(opt, COLOR_DIFF), result_deleted);
|
||||
}
|
||||
free(result);
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ server.errorlog = "$fqgitdir/gitweb/error.log"
|
||||
# variable above and uncomment this
|
||||
#accesslog.filename = "$fqgitdir/gitweb/access.log"
|
||||
|
||||
setenv.add-environment = ( "PATH" => "/usr/local/bin:/usr/bin:/bin" )
|
||||
setenv.add-environment = ( "PATH" => env.PATH )
|
||||
|
||||
cgi.assign = ( ".cgi" => "" )
|
||||
|
||||
@@ -361,7 +361,7 @@ error_log $fqgitdir/gitweb/error.log
|
||||
access_log $fqgitdir/gitweb/access.log
|
||||
|
||||
#cgi setup
|
||||
cgi_env PATH=/usr/local/bin:/usr/bin:/bin,GIT_DIR=$GIT_DIR,GIT_EXEC_PATH=$GIT_EXEC_PATH
|
||||
cgi_env PATH=$PATH,GIT_DIR=$GIT_DIR,GIT_EXEC_PATH=$GIT_EXEC_PATH
|
||||
cgi_interp $PERL
|
||||
cgi_ext cgi,pl
|
||||
|
||||
|
||||
@@ -80,54 +80,55 @@ endif
|
||||
|
||||
all:: gitweb.cgi
|
||||
|
||||
FILES = gitweb.cgi
|
||||
ifdef JSMIN
|
||||
FILES += gitweb.min.js
|
||||
GITWEB_JS = gitweb.min.js
|
||||
endif
|
||||
ifdef CSSMIN
|
||||
FILES += gitweb.min.css
|
||||
GITWEB_CSS = gitweb.min.css
|
||||
endif
|
||||
gitweb.cgi: gitweb.perl $(GITWEB_JS) $(GITWEB_CSS)
|
||||
|
||||
gitweb.cgi:
|
||||
$(QUIET_GEN)$(RM) $@ $@+ && \
|
||||
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
|
||||
-e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
|
||||
-e 's|++GIT_BINDIR++|$(bindir)|g' \
|
||||
-e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
|
||||
-e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
|
||||
-e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
|
||||
-e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
|
||||
-e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
|
||||
-e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
|
||||
-e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
|
||||
-e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
|
||||
-e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
|
||||
-e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
|
||||
-e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
|
||||
-e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
|
||||
-e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
|
||||
-e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
|
||||
-e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
|
||||
-e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
|
||||
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
|
||||
$< >$@+ && \
|
||||
chmod +x $@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
ifdef JSMIN
|
||||
gitweb.min.js: gitweb.js
|
||||
all:: gitweb.min.js
|
||||
gitweb.min.js: gitweb.js GITWEB-BUILD-OPTIONS
|
||||
$(QUIET_GEN)$(JSMIN) <$< >$@
|
||||
endif # JSMIN
|
||||
endif
|
||||
|
||||
ifdef CSSMIN
|
||||
gitweb.min.css: gitweb.css
|
||||
GITWEB_CSS = gitweb.min.css
|
||||
all:: gitweb.min.css
|
||||
gitweb.min.css: gitweb.css GITWEB-BUILD-OPTIONS
|
||||
$(QUIET_GEN)$(CSSMIN) <$ >$@
|
||||
endif
|
||||
|
||||
clean:
|
||||
$(RM) $(FILES)
|
||||
GITWEB_REPLACE = \
|
||||
-e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
|
||||
-e 's|++GIT_BINDIR++|$(bindir)|g' \
|
||||
-e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
|
||||
-e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
|
||||
-e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
|
||||
-e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
|
||||
-e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
|
||||
-e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
|
||||
-e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
|
||||
-e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
|
||||
-e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
|
||||
-e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
|
||||
-e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
|
||||
-e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
|
||||
-e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
|
||||
-e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
|
||||
-e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
|
||||
-e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
|
||||
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g'
|
||||
|
||||
GITWEB-BUILD-OPTIONS: FORCE
|
||||
@rm -f $@+
|
||||
@echo "x" '$(PERL_PATH_SQ)' $(GITWEB_REPLACE) "$(JSMIN)|$(CSSMIN)" >$@+
|
||||
@cmp -s $@+ $@ && rm -f $@+ || mv -f $@+ $@
|
||||
|
||||
gitweb.cgi: gitweb.perl GITWEB-BUILD-OPTIONS
|
||||
$(QUIET_GEN)$(RM) $@ $@+ && \
|
||||
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
|
||||
$(GITWEB_REPLACE) $< >$@+ && \
|
||||
chmod +x $@+ && \
|
||||
mv $@+ $@
|
||||
|
||||
clean:
|
||||
$(RM) gitweb.cgi gitweb.min.js gitweb.min.css GITWEB-BUILD-OPTIONS
|
||||
|
||||
.PHONY: all clean .FORCE-GIT-VERSION-FILE FORCE
|
||||
|
||||
.PHONY: all clean .FORCE-GIT-VERSION-FILE
|
||||
|
||||
@@ -58,14 +58,12 @@ test_expect_success 'allow missing object with --missing' '
|
||||
test_cmp tree.missing actual
|
||||
'
|
||||
|
||||
test_expect_failure 'mktree reads ls-tree -r output (1)' '
|
||||
git mktree <all >actual &&
|
||||
test_cmp tree actual
|
||||
test_expect_success 'mktree refuses to read ls-tree -r output (1)' '
|
||||
test_must_fail git mktree <all >actual
|
||||
'
|
||||
|
||||
test_expect_failure 'mktree reads ls-tree -r output (2)' '
|
||||
git mktree <all.withsub >actual &&
|
||||
test_cmp tree.withsub actual
|
||||
test_expect_success 'mktree refuses to read ls-tree -r output (2)' '
|
||||
test_must_fail git mktree <all.withsub >actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -81,4 +81,12 @@ test_expect_success 'check combined output (2)' '
|
||||
verify_helper sidesansone
|
||||
'
|
||||
|
||||
test_expect_success 'diagnose truncated file' '
|
||||
>file &&
|
||||
git add file &&
|
||||
git commit --amend -C HEAD &&
|
||||
git show >out &&
|
||||
grep "diff --cc file" out
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -222,7 +222,7 @@ test_expect_success 'oneline with empty message' '
|
||||
git commit -m "dummy" --allow-empty &&
|
||||
git commit -m "dummy" --allow-empty &&
|
||||
git filter-branch --msg-filter "sed -e s/dummy//" HEAD^^.. &&
|
||||
git rev-list --oneline HEAD > /tmp/test.txt &&
|
||||
git rev-list --oneline HEAD >test.txt &&
|
||||
test $(git rev-list --oneline HEAD | wc -l) -eq 5 &&
|
||||
test $(git rev-list --oneline --graph HEAD | wc -l) -eq 5
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user