Skip to content

Commit

Permalink
Sync with 1.6.5.5
Browse files Browse the repository at this point in the history
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Dec 5, 2009
2 parents 1a56be1 + aa03131 commit 3880c18
Show file tree
Hide file tree
Showing 10 changed files with 80 additions and 22 deletions.
1 change: 1 addition & 0 deletions Documentation/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ gitman.info
howto-index.txt
doc.dep
cmds-*.txt
manpage-base-url.xsl
23 changes: 12 additions & 11 deletions Documentation/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -105,18 +105,15 @@ XMLTO_EXTRA += -m manpage-suppress-sp.xsl
endif

# Newer DocBook stylesheet emits warning cruft in the output when
# this is not set, and if set it shows an absolute link. We can
# use MAN_BASE_URL=http://www.kernel.org/pub/software/scm/git/docs/
# but distros may want to set it to /usr/share/doc/git-core/docs/ or
# something like that.
# this is not set, and if set it shows an absolute link. Older
# stylesheets simply ignore this parameter.
#
# As older stylesheets simply ignore this parameter, it ought to be
# safe to set it to empty string when the base URL is not specified,
# but unfortunately we cannot do so unconditionally because at least
# xmlto 0.0.18 is reported to lack --stringparam option.
ifdef MAN_BASE_URL
XMLTO_EXTRA += --stringparam man.base.url.for.relative.links=$(MAN_BASE_URL)
# Distros may want to use MAN_BASE_URL=file:///path/to/git/docs/
# or similar.
ifndef MAN_BASE_URL
MAN_BASE_URL = file://$(htmldir)/
endif
XMLTO_EXTRA += -m manpage-base-url.xsl

# If your target system uses GNU groff, it may try to render
# apostrophes as a "pretty" apostrophe using unicode. This breaks
Expand Down Expand Up @@ -245,14 +242,18 @@ clean:
$(RM) howto-index.txt howto/*.html doc.dep
$(RM) technical/api-*.html technical/api-index.txt
$(RM) $(cmds_txt) *.made
$(RM) manpage-base-url.xsl

$(MAN_HTML): %.html : %.txt
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $< && \
mv $@+ $@

%.1 %.5 %.7 : %.xml
manpage-base-url.xsl: manpage-base-url.xsl.in
sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@

%.1 %.5 %.7 : %.xml manpage-base-url.xsl
$(QUIET_XMLTO)$(RM) $@ && \
xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<

Expand Down
9 changes: 7 additions & 2 deletions Documentation/RelNotes-1.6.5.5.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ Fixes since v1.6.5.4
twice, and held onto memory after it has used the data in it
unnecessarily before it freed.

* "git diff -B" and "git diff --dirstat" was not counting newly added
contents correctly.

* "git format-patch revisions... -- path" issued an incorrect error
message that suggested to use "--" on the command line when path
does not exist in the current work tree (it is a separate matter if
Expand All @@ -39,6 +42,8 @@ Fixes since v1.6.5.4
* "git rebase" got confused when the log message began with certain
strings that looked like Subject:, Date: or From: header.

Other minor documentation updates are included.
* "git reset" accidentally run in .git/ directory checked out the
work tree contents in there.

v1.6.5.4-47-gdda8f4b

Other minor documentation updates are included.
5 changes: 3 additions & 2 deletions Documentation/git-archive.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ OPTIONS
The tree or commit to produce an archive for.

path::
If one or more paths are specified, include only these in the
archive, otherwise include all files and subdirectories.
Without an optional path parameter, all files and subdirectories
of the current working directory are included in the archive.
If one or more paths are specified, only these are included.

BACKEND EXTRA OPTIONS
---------------------
Expand Down
3 changes: 2 additions & 1 deletion Documentation/git.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:

* link:v1.6.5.4/git.html[documentation for release 1.6.5.4]
* link:v1.6.5.5/git.html[documentation for release 1.6.5.5]

* release notes for
link:RelNotes-1.6.5.5.txt[1.6.5.5],
link:RelNotes-1.6.5.4.txt[1.6.5.4],
link:RelNotes-1.6.5.3.txt[1.6.5.3],
link:RelNotes-1.6.5.2.txt[1.6.5.2],
Expand Down
10 changes: 10 additions & 0 deletions Documentation/manpage-base-url.xsl.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- manpage-base-url.xsl:
special settings for manpages rendered from newer docbook -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">

<!-- set a base URL for relative links -->
<xsl:param name="man.base.url.for.relative.links"
>@@MAN_BASE_URL@@</xsl:param>

</xsl:stylesheet>
2 changes: 2 additions & 0 deletions builtin-rerere.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ static void garbage_collect(struct string_list *rr)

git_config(git_rerere_gc_config, NULL);
dir = opendir(git_path("rr-cache"));
if (!dir)
die_errno("unable to open rr-cache directory");
while ((e = readdir(dir))) {
if (is_dot_or_dotdot(e->d_name))
continue;
Expand Down
6 changes: 4 additions & 2 deletions builtin-reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,10 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
if (reset_type == NONE)
reset_type = MIXED; /* by default */

if (reset_type == HARD && is_bare_repository())
die("hard reset makes no sense in a bare repository");
if ((reset_type == HARD || reset_type == MERGE)
&& !is_inside_work_tree())
die("%s reset requires a work tree",
reset_type_names[reset_type]);

/* Soft reset does not touch the index file nor the working tree
* at all, but requires them in a good order. Other resets reset
Expand Down
11 changes: 10 additions & 1 deletion diffcore-delta.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,10 +201,15 @@ int diffcore_count_changes(struct diff_filespec *src,
while (d->cnt) {
if (d->hashval >= s->hashval)
break;
la += d->cnt;
d++;
}
src_cnt = s->cnt;
dst_cnt = d->hashval == s->hashval ? d->cnt : 0;
dst_cnt = 0;
if (d->cnt && d->hashval == s->hashval) {
dst_cnt = d->cnt;
d++;
}
if (src_cnt < dst_cnt) {
la += dst_cnt - src_cnt;
sc += src_cnt;
Expand All @@ -213,6 +218,10 @@ int diffcore_count_changes(struct diff_filespec *src,
sc += dst_cnt;
s++;
}
while (d->cnt) {
la += d->cnt;
d++;
}

if (!src_count_p)
free(src_count);
Expand Down
32 changes: 29 additions & 3 deletions t/t7103-reset-bare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,42 @@ test_expect_success 'setup non-bare' '
git commit -a -m two
'

test_expect_success 'hard reset requires a worktree' '
(cd .git &&
test_must_fail git reset --hard)
'

test_expect_success 'merge reset requires a worktree' '
(cd .git &&
test_must_fail git reset --merge)
'

test_expect_success 'mixed reset is ok' '
(cd .git && git reset)
'

test_expect_success 'soft reset is ok' '
(cd .git && git reset --soft)
'

test_expect_success 'setup bare' '
git clone --bare . bare.git &&
cd bare.git
'

test_expect_success 'hard reset is not allowed' '
test_must_fail git reset --hard HEAD^
test_expect_success 'hard reset is not allowed in bare' '
test_must_fail git reset --hard HEAD^
'

test_expect_success 'merge reset is not allowed in bare' '
test_must_fail git reset --merge HEAD^
'

test_expect_success 'mixed reset is not allowed in bare' '
test_must_fail git reset --mixed HEAD^
'

test_expect_success 'soft reset is allowed' '
test_expect_success 'soft reset is allowed in bare' '
git reset --soft HEAD^ &&
test "`git show --pretty=format:%s | head -n 1`" = "one"
'
Expand Down

0 comments on commit 3880c18

Please sign in to comment.