Martin Koegler [Mon, 25 Feb 2008 21:46:13 +0000 (22:46 +0100)]
receive-pack: allow using --strict mode for unpacking objects
When a configuration variable receive.fsckobjects is set,
receive-pack runs unpack-objects with --strict mode to check all
received objects.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 5 Mar 2008 07:46:51 +0000 (23:46 -0800)]
unpack-objects: fix --strict handling
Earlier attempt (which was reverted) called added_object() (by the way,
the function should be renamed to resolve_dependents() --- it is called
when we have a complete object data, and is responsible to resolve pending
deltified objects that use this object as their delta base object) without
updating obj_list[nr].sha1 with the correct value.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 5 Mar 2008 08:14:32 +0000 (00:14 -0800)]
t5300: add test for "unpack-objects --strict"
This adds test for unpacking deltified objects with --strict option.
- unpacking full trees with --strict should pass;
- unpacking only trees with --strict should be rejected due to
missing blobs;
- unpacking only trees with --strict into an existing
repository with necessary blobs should succeed.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Koegler [Mon, 25 Feb 2008 21:46:11 +0000 (22:46 +0100)]
unpack-objects: prevent writing of inconsistent objects
This patch introduces a strict mode, which ensures that:
- no malformed object will be written
- no object with broken links will be written
The patch ensures this by delaying the write of all non blob object.
These object are written, after all objects they link to are written.
An error can only result in unreferenced objects.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 4 Mar 2008 10:02:35 +0000 (02:02 -0800)]
fsck.c: fix bogus "empty tree" check
ba002f3 (builtin-fsck: move common object checking code to fsck.c) did
more than what it claimed to. Most notably, it wrongly made an empty tree
object an error by pretending to only move code from fsck_tree() in
builtin-fsck.c to fsck_tree() in fsck.c, but in fact adding a bogus check
to barf on an empty tree.
An empty tree object is _unusual_. Recent porcelains try reasonably hard
not to let the user create a commit that contains such a tree. Perhaps
warning about them in git-fsck may have some merit.
HOWEVER.
Being unusual and being errorneous are two quite different things. This
is especially true now we seem to use the same fsck_$object() code in
places other than git-fsck itself. For example, receive-pack should not
reject unusual objects, even if it would be a good idea to tighten it to
reject incorrect ones.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 4 Mar 2008 11:11:30 +0000 (03:11 -0800)]
Revert "unpack-objects: prevent writing of inconsistent objects"
This reverts commit
d5ef408b9afb5b4417f4e7e1593a96302d666650.
Junio C Hamano [Tue, 4 Mar 2008 11:11:06 +0000 (03:11 -0800)]
Revert "receive-pack: use strict mode for unpacking objects"
This reverts commit
28f72a0f232dfc71b3be726e7e71d0a6d5f9ebba.
Junio C Hamano [Tue, 4 Mar 2008 08:34:39 +0000 (00:34 -0800)]
Merge branch 'maint'
* maint:
Fix 'git remote show' regression on empty repository in 1.5.4
Fix incorrect wording in git-merge.txt.
git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
Fix random crashes in http_cleanup()
Shawn O. Pearce [Tue, 4 Mar 2008 06:00:36 +0000 (01:00 -0500)]
Fix 'git remote show' regression on empty repository in 1.5.4
Back in
18f7c51c we switched git-ls-remote/git-peek-remote to
use the transport backend, rather than do everything itself.
As part of that switch we started to produce a non-zero exit
status if no refs were received from the remote peer, which
happens when the remote peer has no commits pushed to it yet.
(E.g. "git --git-dir=foo.git init; git ls-remote foo.git")
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mike Hommey [Sat, 1 Mar 2008 11:12:13 +0000 (12:12 +0100)]
t3407-rebase-abort.sh: Enhance existing tests, and add test for rebase --merge
Removing .dotest should actually not be needed, so just test the directory
don't exist after --abort, but exists after starting the rebase.
Also, execute the same tests with rebase --merge, which uses a different code
path.
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Simon Hausmann [Mon, 3 Mar 2008 10:55:48 +0000 (11:55 +0100)]
git-p4: Fix import of changesets with file deletions
Commit
3a70cdfa42199e16d2d047c286431c4274d65b1a made readP4Files abort quickly
when the changeset only contains files that are marked for deletion with an empty return
value, which caused the commit to not do anything.
This commit changes readP4Files to distinguish between files that need to be passed to p4
print and files that have no content ("deleted") and merge them in the returned
list.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alex Riesen [Mon, 3 Mar 2008 23:48:56 +0000 (00:48 +0100)]
Fix test for cleanup failure in t7300 on Windows
Keep the file open to: the OS does not allow removal of open files.
The saner systems just have a saner permission model and chmod 0
is enough for the test.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 4 Mar 2008 02:29:51 +0000 (18:29 -0800)]
t6120 (describe): check --long properly
Existing test checked --long only for exactly tagged commit. We should
make sure it works sensibly for commits that are not tagged.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:38 +0000 (20:09 -0500)]
Add git-describe test for "verify annotated tag names on output"
Back in
212945d4 ("Teach git-describe to verify annotated tag names
before output") I taught git-describe to output the name shown in the
"tag" header of an annotated tag, rather than the name it is actually
stored under in this repository's ref namespace.
This test case verifies this is working correctly by renaming the ref
for an annotated tag to a different name that what is recorded in the
tag body, and verifying that tag is returned. We also verify there is
a message shown on stderr to inform the user that the tag is possibly
stored under the wrong name locally.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:35 +0000 (20:09 -0500)]
Test for packed tags in git-describe output
In
c374b91c ("git-describe: use tags found in packed-refs correctly")
Junio fixed an issue where git-describe did not parse a tag object it
obtained from a packed-refs file, as the peel information was read in
from packed-refs and not the tag object itself.
This new test case verifies the fix listed above is functioning, and
does not have a regression in the future.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Tue, 4 Mar 2008 01:09:31 +0000 (20:09 -0500)]
Don't allow git-describe failures to go unnoticed in t6120
If git-describe fails we never execute the test_expect_success,
so we never actually test for failure. This is horribly wrong.
We need to always run the test case, but the test case is only
supposed to succeed if the prior git-describe returned 0.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Mar 2008 23:54:23 +0000 (15:54 -0800)]
describe: re-fix display_name()
It is implausible for lookup_tag() to return NULL in this particular
codepath but we should protect ourselves against a broken repository
better.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthieu Moy [Mon, 3 Mar 2008 17:52:49 +0000 (18:52 +0100)]
Fix incorrect wording in git-merge.txt.
A merge is not necessarily with a remote branch, it can be with any
commit.
Thanks to Paolo Ciarrocchi for pointing out the problem, and to
Nicolas Pitre for pointing out the fact that a merge is not
necessarily with a branch head.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Gerrit Pape [Mon, 3 Mar 2008 09:22:03 +0000 (09:22 +0000)]
git-merge.sh: better handling of combined --squash,--no-ff,--no-commit options
git-merge used to use either the --squash,--no-squash, --no-ff,--ff,
--no-commit,--commit option, whichever came last in the command line.
This lead to some un-intuitive behavior, having
git merge --no-commit --no-ff <branch>
actually commit the merge. Now git-merge respects --no-commit together
with --no-ff, as well as other combinations of the options. However,
this broke a selftest in t/t7600-merge.sh which expected to have --no-ff
completely override the --squash option, so that
git merge --squash --no-ff <branch>
fast-forwards, and makes a merge commit; combining --squash with --no-ff
doesn't really make sense though, and is now refused by git-merge. The
test is adapted to test --no-ff without the preceding --squash, and
another test is added to make sure the --squash --no-ff combination is
refused.
The unexpected behavior was reported by John Goerzen through
http://bing.sdebian.org/468568
Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mike Hommey [Mon, 3 Mar 2008 19:30:16 +0000 (20:30 +0100)]
Fix random crashes in http_cleanup()
For some reason, http_cleanup was running all active slots, which could
lead in situations where a freed slot would be accessed in
fill_active_slots. OTOH, we are cleaning up, which means the caller
doesn't care about pending requests. Just forget about them instead
or running them.
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Mar 2008 21:08:26 +0000 (13:08 -0800)]
describe: fix --long output
An error while hand-merging broke the new "--long" option.
This should fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Mar 2008 17:24:17 +0000 (09:24 -0800)]
git-describe: use tags found in packed-refs correctly
When your refs are packed, "git-describe" can find the tag that is the
best match without ever parsing the tag itself. But lookup_tag() in
display_name() says "I've never seen it", creates an empty shell, and
returns it. We need to make sure that we actually have parsed the tag
data into it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Koegler [Mon, 3 Mar 2008 06:31:23 +0000 (07:31 +0100)]
fetch-pack: check parse_commit/object results
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Mar 2008 06:04:59 +0000 (22:04 -0800)]
Update draft release notes for 1.5.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Mar 2008 07:59:50 +0000 (23:59 -0800)]
Merge branch 'maint'
* maint:
Update draft release notes for 1.5.4.4
revert: actually check for a dirty index
tests: introduce test_must_fail
git-submodule: Fix typo 'url' which should be '$url'
receive-pack: Initialize PATH to include exec-dir.
Conflicts:
builtin-revert.c
Junio C Hamano [Mon, 3 Mar 2008 05:49:28 +0000 (21:49 -0800)]
Update draft release notes for 1.5.4.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 3 Mar 2008 06:30:56 +0000 (01:30 -0500)]
revert: actually check for a dirty index
The previous code mistakenly used wt_status_prepare to check whether the
index had anything commitable in it; however, that function is just an
init function, and will never report a dirty index.
The correct way with wt_status_* would be to call wt_status_print with the
output pointing to /dev/null or similar. However, that does extra work by
both examining the working tree and spewing status information to nowhere.
Instead, let's just implement the useful subset of wt_status_print as an
"is_index_dirty" function.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 28 Feb 2008 21:09:30 +0000 (13:09 -0800)]
tests: introduce test_must_fail
When we expect a git command to notice and signal errors, we
carelessly wrote in our tests:
test_expect_success 'reject bogus request' '
do something &&
do something else &&
! git command
'
but a non-zero exit could come from the "git command" segfaulting.
A new helper function "tset_must_fail" is introduced and it is
meant to be used to make sure the command gracefully fails (iow,
dying and exiting with non zero status is counted as a failure
to "gracefully fail"). The above example should be written as:
test_expect_success 'reject bogus request' '
do something &&
do something else &&
test_must_fail git command
'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ping Yin [Mon, 3 Mar 2008 02:03:18 +0000 (10:03 +0800)]
git-submodule: Fix typo 'url' which should be '$url'
Fix typo in 'test -z "url"' when checking whether a submodule url is
empty. "url" should be "$url".
Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Björn Steinbrink [Mon, 3 Mar 2008 04:08:43 +0000 (05:08 +0100)]
receive-pack: Initialize PATH to include exec-dir.
511707d (use only the $PATH for exec'ing git commands) made it a
requirement to call setup_path() to include the git exec-dir in PATH
before spawning any other git commands. git-receive-pack was not yet
adapted to do this and therefore fails to spawn git-unpack-objects if that
is not in the standard PATH.
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ralf Wildenhues [Sun, 2 Mar 2008 23:07:47 +0000 (00:07 +0100)]
Fix doc typos.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jean-Luc Herren [Thu, 28 Feb 2008 22:29:54 +0000 (23:29 +0100)]
fast-import: exit with proper message if not a git dir
git fast-import expects to be run from an existing (possibly
empty) repository. It was dying with a suboptimal message if that
wasn't the case.
Signed-off-by: Jean-Luc Herren <jlh@gmx.ch>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Junio C Hamano [Mon, 3 Mar 2008 00:07:30 +0000 (16:07 -0800)]
Merge branch 'np/verify-pack'
* np/verify-pack:
add storage size output to 'git verify-pack -v'
fix unimplemented packed_object_info_detail() features
make verify_one_pack() a bit less wrong wrt packed_git structure
factorize revindex code out of builtin-pack-objects.c
Conflicts:
Makefile
Johannes Schindelin [Sun, 2 Mar 2008 15:53:39 +0000 (15:53 +0000)]
format-patch: wrap cover-letter's shortlog sensibly
Earlier, overly-long onelines would not be wrapped at all, and indented
with 6 spaces.
Instead, we now wrap around at 72 characters, with a first-line indent
of 2 spaces, and the rest with 4 spaces.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sun, 2 Mar 2008 15:53:04 +0000 (15:53 +0000)]
format-patch: use the diff options for the cover letter, too
Earlier, when you called "git format-patch --cover-letter -M", the
diffstat in the cover letter would not inherit the "-M". Now it does.
While at it, add a few "|| break" statements in the test's loops;
otherwise, breakages inside the loops would not be caught.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jakub Narebski [Sun, 2 Mar 2008 15:57:14 +0000 (16:57 +0100)]
gitweb: Mark first match when searching commit messages
Due to greediness of a pattern, gitweb used to mark (show) last match
in line, if there are more than one match in line. Now it shows first.
Showing all matches in a line would require further work.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 23:19:59 +0000 (15:19 -0800)]
Merge branch 'sp/describe-tag'
* sp/describe-tag:
Teach git-describe to verify annotated tag names before output
Conflicts:
builtin-describe.c
Junio C Hamano [Sun, 2 Mar 2008 23:12:27 +0000 (15:12 -0800)]
Merge branch 'pb/cvsimport'
* pb/cvsimport:
cvsimport: document that -M can be used multiple times
cvsimport: allow for multiple -M options
cvsimport: have default merge regex allow for dashes in the branch name
Junio C Hamano [Sun, 2 Mar 2008 23:12:04 +0000 (15:12 -0800)]
Merge branch 'jc/maint-log-merge-left-right'
* jc/maint-log-merge-left-right:
Fix "git log --merge --left-right"
Junio C Hamano [Sun, 2 Mar 2008 23:11:26 +0000 (15:11 -0800)]
Merge branch 'mh/maint-http-proxy-fix'
* mh/maint-http-proxy-fix:
Set proxy override with http_init()
Junio C Hamano [Sun, 2 Mar 2008 23:11:23 +0000 (15:11 -0800)]
Merge branch 'cb/http-test'
* cb/http-test:
http-push: add regression tests
http-push: push <remote> :<branch> deletes remote branch
Junio C Hamano [Sun, 2 Mar 2008 23:11:19 +0000 (15:11 -0800)]
Merge branch 'jc/remote-multi-url'
* jc/remote-multi-url:
git-remote: do not complain on multiple URLs for a remote
Junio C Hamano [Sun, 2 Mar 2008 23:11:14 +0000 (15:11 -0800)]
Merge branch 'jn/gitweb-grep'
* jn/gitweb-grep:
gitweb: Clearly distinguish regexp / exact match searches
gitweb: Simplify fixed string search
gitweb: Change parse_commits signature to allow for multiple options
Junio C Hamano [Sun, 2 Mar 2008 23:11:07 +0000 (15:11 -0800)]
Merge branch 'mk/maint-parse-careful'
* mk/maint-parse-careful:
receive-pack: use strict mode for unpacking objects
index-pack: introduce checking mode
unpack-objects: prevent writing of inconsistent objects
unpack-object: cache for non written objects
add common fsck error printing function
builtin-fsck: move common object checking code to fsck.c
builtin-fsck: reports missing parent commits
Remove unused object-ref code
builtin-fsck: move away from object-refs to fsck_walk
add generic, type aware object chain walker
Conflicts:
Makefile
builtin-fsck.c
Junio C Hamano [Sun, 2 Mar 2008 23:02:56 +0000 (15:02 -0800)]
Merge branch 'sb/describe-long'
* sb/describe-long:
git-describe: --long shows the object name even for a tagged commit
Junio C Hamano [Sun, 2 Mar 2008 23:02:14 +0000 (15:02 -0800)]
Merge branch 'ew/maint-svn-cert-fileprovider'
* ew/maint-svn-cert-fileprovider:
git-svn: Don't prompt for client cert password everytime.
Junio C Hamano [Sun, 2 Mar 2008 23:02:08 +0000 (15:02 -0800)]
Merge branch 'js/maint-daemon'
* js/maint-daemon:
daemon: ensure that base-path is an existing directory
daemon: send more error messages to the syslog
Jakub Narebski [Sun, 2 Mar 2008 14:11:35 +0000 (15:11 +0100)]
Documentation: Remove --{min,max}-age option from git-log(1)
The --max-age=<timestamp> and --min-age=<timestamp> are now shown only
in the git-rev-list manpage (plumbing).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Denis Cheng [Sun, 2 Mar 2008 10:05:05 +0000 (18:05 +0800)]
cleanup: remove unused git_checkout_config
Directly call git_default_config instead.
Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sun, 2 Mar 2008 07:40:33 +0000 (07:40 +0000)]
Fix make_absolute_path() for parameters without a slash
When passing "xyz" to make_absolute_path(), make_absolute_path()
erroneously tried to chdir("xyz"), and then append "/xyz". Instead,
skip the chdir() completely when no slash was found.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 08:07:59 +0000 (00:07 -0800)]
diff: make sure work tree side is shown as 0{40} when different
Ping Yin noticed that "git diff-index --raw" shows 0{40} when work tree
has submodule difference, but "git diff --raw" didn't correctly do so.
There was a mistake in the diffcore_skip_stat_unmatch() that was meant to
clean up the stat-only difference for running diff between the index and
work tree and diff between the tree and the work tree, to cause it re-read
from the submodule repository HEAD. When ce_stat_match() says work tree
is different, we should always say 0{40} on the work tree side.
This patch fixes the issue, and adds tests.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 08:57:26 +0000 (00:57 -0800)]
diff-lib.c: constness strengthening
The internal implementation of diff-index codepath used to use non const
pointer to pass sha1 around, but it did not have to. With this, we can
also lose the private no_sha1[] array, as we can use the public null_sha1[]
array that exists exactly for the same purpose.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 07:43:32 +0000 (23:43 -0800)]
Clean up find_unique_abbrev() callers
Now find_unique_abbrev() never returns NULL, there is no need for callers
to prepare for seeing NULL and fall back to giving the full 40-hexdigits.
While we are at it, drop "..." in the "git reset" output that reports the
location of the new HEAD, between the abbreviated commit object name and
the one line commit summary. Because we are always showing the HEAD
(which cannot be missing!), we never had a case where we show the full 40
hexdigits that is not followed by three dots, and these three dots were
stealing 3 columns from the precious horizontal screen real estate out of
80 that can better be used for the one line commit summary.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 07:35:32 +0000 (23:35 -0800)]
find_unique_abbrev(): redefine semantics
The function returned NULL when no object that matches the name
was found, but that made the callers more complicated, as nobody
used that NULL return as an indication that no object with such
a name exists. They (at least the careful ones) instead took
the full 40-hexdigit and used in such a case, and the careless
ones segfaulted.
With this "git rev-parse --short
5555555555555555555555555555555555555555"
would stop segfaulting.
This is based on Jeff King's rewrite to my RFC patch, but "missing"
logic swapped to "exists". The final logic reads:
For existing objects, make sure the abbreviated string uniquely
identifies it. Otherwise, make sure the abbreviated string is
long enough so that it would not name any existing object.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mike Hommey [Sat, 1 Mar 2008 10:32:14 +0000 (11:32 +0100)]
git rebase --abort: always restore the right commit
Previously, --abort would end by git resetting to ORIG_HEAD, but some
commands, such as git reset --hard (which happened in git rebase --skip,
but could just as well be typed by the user), would have already modified
ORIG_HEAD.
Just use the orig-head we store in $dotest instead.
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mike Hommey [Sat, 1 Mar 2008 11:39:52 +0000 (12:39 +0100)]
Documentation/git-rebase.txt: Add --strategy to synopsys
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 2 Mar 2008 02:18:16 +0000 (18:18 -0800)]
CodingGuidelines: spell out how we use grep in our scripts
Our scripts try to stick to fairly limited subset of POSIX BRE for
portability. It is unclear from manual page from GNU grep which is GNU
extension and which is portable, so let's spell it out to help new people
to keep their contributions from hurting porters.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Thu, 28 Feb 2008 05:25:20 +0000 (00:25 -0500)]
add storage size output to 'git verify-pack -v'
This can possibly break external scripts that depend on the previous
output, but those script can't possibly be critical to Git usage, and
fixing them should be trivial.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Thu, 28 Feb 2008 05:25:19 +0000 (00:25 -0500)]
fix unimplemented packed_object_info_detail() features
Since commit
eb32d236df0c16b936b04f0c5402addb61cdb311, there was a TODO
comment in packed_object_info_detail() about the SHA1 of base object to
OBJ_OFS_DELTA objects. So here it is at last.
While at it, providing the actual storage size information as well is now
trivial.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Thu, 28 Feb 2008 05:25:18 +0000 (00:25 -0500)]
make verify_one_pack() a bit less wrong wrt packed_git structure
Simply freeing it is wrong. There are many things attached to this
structure that are not cleaned up. In practice this doesn't matter much
since this happens just before the program exits, but it is still
a bit more "correct" to leak it implicitly rather than explicitly.
And therefore it is also a good idea to register it with
install_packed_git(). Not only might it have better chance of being
properly cleaned up if such functionality is implemented for the general
case, but some functions like init_revindex() expect all packed_git
instances to be globally accessible.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nicolas Pitre [Thu, 28 Feb 2008 05:25:17 +0000 (00:25 -0500)]
factorize revindex code out of builtin-pack-objects.c
No functional change. This is needed to fix verify-pack in a later patch.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sat, 1 Mar 2008 06:22:55 +0000 (01:22 -0500)]
allow git-am to run in a subdirectory
We just move to the top of the tree and proceed. This
shouldn't break any existing callers, since the behavior was
previously disallowed.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sat, 1 Mar 2008 06:14:31 +0000 (01:14 -0500)]
rename: warn user when we have turned off rename detection
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Mike Hommey [Fri, 29 Feb 2008 22:08:47 +0000 (23:08 +0100)]
Add test for git rebase --abort
We expect git rebase --abort to come back to the original (pre-rebase)
head, independently from when it's run during a rebase.
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 1 Mar 2008 09:10:12 +0000 (01:10 -0800)]
t6024: move "git reset" to prepare for a test inside the test itself
Noticed by Mike Hommey.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Lichtenheld [Fri, 29 Feb 2008 21:53:39 +0000 (22:53 +0100)]
gc: Add --quiet option
Pass -q option to git-repack.
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Philippe Bruhat (BooK [Thu, 28 Feb 2008 10:18:23 +0000 (11:18 +0100)]
cvsimport: document that -M can be used multiple times
Also document the capture behaviour (source branch name in $1)
Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Philippe Bruhat (BooK [Thu, 28 Feb 2008 10:18:22 +0000 (11:18 +0100)]
cvsimport: allow for multiple -M options
Use Getopt::Long instead of Getopt::Std to handle multiple -M options,
for all the cases when having a single custom regex is not enough.
Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Philippe Bruhat (BooK [Thu, 28 Feb 2008 10:18:21 +0000 (11:18 +0100)]
cvsimport: have default merge regex allow for dashes in the branch name
The default value of @mergerx uses \w, which matches word
character; a branch name like policy-
20050608-br will not be
matched.
Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 1 Mar 2008 05:22:52 +0000 (21:22 -0800)]
Merge branch 'master' of git://repo.or.cz/git-gui
* 'master' of git://repo.or.cz/git-gui:
git-gui: fix typo in lib/spellcheck.tcl
git-gui: Shorten Aspell version strings to just Aspell version number
git-gui: Gracefully display non-aspell version errors to users
git-gui: Catch and display aspell startup failures to the user
git-gui: Only bind the spellcheck popup suggestion hook once
git-gui: Remove explicit references to 'aspell' in message strings
git-gui: Ensure all spellchecker 'class' variables are initialized
git-gui: Update German translation.
git-gui: (i18n) Add newly added translation strings to template.
Junio C Hamano [Sat, 1 Mar 2008 05:22:31 +0000 (21:22 -0800)]
Merge branch 'maint'
* maint:
Documentation cherry-pick: Fix cut-and-paste error
git.el: find the git-status buffer whatever its name is
git-gui: Paper bag fix info dialog when no files are staged at commit
Mike Ralphson [Fri, 29 Feb 2008 17:00:38 +0000 (17:00 +0000)]
Documentation cherry-pick: Fix cut-and-paste error
Signed-off-by: Mike Ralphson <mike@abacus.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Rémi Vanicat [Fri, 29 Feb 2008 18:28:19 +0000 (19:28 +0100)]
git.el: find the git-status buffer whatever its name is
git-status used the buffer name to find git-status buffers, and that
can fail if the buffer has another name, for example when multiple
working directories is tracked.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
Acked-by: Alexandre Julliard <julliard@winehq.org>
Tested-by: Xavier Maillard <xma@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 1 Mar 2008 05:19:43 +0000 (21:19 -0800)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint
* 'maint' of git://repo.or.cz/git-gui:
git-gui: Paper bag fix info dialog when no files are staged at commit
Santi Béjar [Fri, 29 Feb 2008 19:16:19 +0000 (20:16 +0100)]
clone: support cloning full bundles
The "humanish" part of a bundle is made removing the ".bundle" suffix.
Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 28 Feb 2008 07:39:47 +0000 (23:39 -0800)]
Update draft release notes for 1.5.5
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 24 Feb 2008 19:40:45 +0000 (14:40 -0500)]
use build-time SHELL_PATH in test scripts
The top-level Makefile now creates a GIT-BUILD-OPTIONS file
which stores any options selected by the make process that
may be of use to further parts of the build process.
Specifically, we store the SHELL_PATH so that it can be used
by tests to construct shell scripts on the fly.
The format of the GIT-BUILD-OPTIONS file is Bourne shell,
and it is sourced by test-lib.sh; all tests can rely on just
having $SHELL_PATH correctly set in the environment.
The GIT-BUILD-OPTIONS file is written every time the
toplevel 'make' is invoked. Since the only users right now
are the test scripts, there's no drawback to updating its
timestamp. If something build-related depends on this, we
can do a trick similar to the one used by GIT-CFLAGS.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Daniel Barkalow [Thu, 28 Feb 2008 21:52:44 +0000 (16:52 -0500)]
Write index file on any checkout of files
We need to rewrite the index file when we check out files, even if we
haven't modified the blob info by reading from another tree, so that
we get the stat cache to include the fact that we just modified the
file so it doesn't need to be refreshed.
While we're at it, move everything that needs to be done to check out
some paths from a tree (or the current index) into checkout_paths().
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Uwe Kleine-König [Thu, 28 Feb 2008 07:24:25 +0000 (08:24 +0100)]
rev-list: add --branches, --tags and --remotes
These flags are already known to rev-parse and have the same meaning.
This patch allows to run gitk as follows:
gitk --branches --not --remotes
to show only your local work.
Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Miklos Vajna [Thu, 28 Feb 2008 12:36:54 +0000 (13:36 +0100)]
Improve t6029 to check the real "subtree" case
t6029 already checks if subtree available and works like recursive. This
patch adds code to test test the extra functionality the subtree merge
strategy provides.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Daniel Barkalow [Thu, 28 Feb 2008 17:14:13 +0000 (12:14 -0500)]
Use diff_tree() directly in making cover letter
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Daniel Barkalow [Thu, 28 Feb 2008 16:10:51 +0000 (11:10 -0500)]
Always use the current connection's remote ref list in git protocol
We always report to the user the list of refs we got from the first
connection, even if we do multiple connections. But we should always
use each connection's own list of refs in the communication with the
server, in case we got a different server out of DNS rotation or the
timing was surprising or something.
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 28 Feb 2008 21:09:30 +0000 (13:09 -0800)]
tests: introduce test_must_fail
When we expect a git command to notice and signal errors, we
carelessly wrote in our tests:
test_expect_success 'reject bogus request' '
do something &&
do something else &&
! git command
'
but a non-zero exit could come from the "git command" segfaulting.
A new helper function "tset_must_fail" is introduced and it is
meant to be used to make sure the command gracefully fails (iow,
dying and exiting with non zero status is counted as a failure
to "gracefully fail"). The above example should be written as:
test_expect_success 'reject bogus request' '
do something &&
do something else &&
test_must_fail git command
'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alex Riesen [Thu, 28 Feb 2008 16:30:47 +0000 (17:30 +0100)]
Fix builtin checkout crashing when given an invalid path
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 29 Feb 2008 08:00:09 +0000 (00:00 -0800)]
Merge branch 'maint'
* maint:
templates/Makefile: don't depend on local umask setting
Correct name of diff_flush() in API documentation
Start preparing for 1.5.4.4
Conflicts:
RelNotes
Martin Koegler [Mon, 25 Feb 2008 21:46:13 +0000 (22:46 +0100)]
receive-pack: use strict mode for unpacking objects
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Koegler [Mon, 25 Feb 2008 21:46:12 +0000 (22:46 +0100)]
index-pack: introduce checking mode
Adds strict option, which bails out if the pack would
introduces broken object or links in the repository.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Koegler [Mon, 25 Feb 2008 21:46:11 +0000 (22:46 +0100)]
unpack-objects: prevent writing of inconsistent objects
This patch introduces a strict mode, which ensures that:
- no malformed object will be written
- no object with broken links will be written
The patch ensures this by delaying the write of all non blob object.
These object are written, after all objects they link to are written.
An error can only result in unreferenced objects.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Koegler [Mon, 25 Feb 2008 21:46:10 +0000 (22:46 +0100)]
unpack-object: cache for non written objects
Preventing objects with broken links entering the repository
means, that write of some objects must be delayed.
This patch adds a cache to keep the object data in memory. The delta
resolving code must also search in the cache.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Thu, 28 Feb 2008 06:22:36 +0000 (01:22 -0500)]
Teach git-describe to verify annotated tag names before output
If an annotated tag describes a commit we want to favor the name
listed in the body of the tag, rather than whatever name it has
been stored under locally. By doing so it is easier to converse
about tags with others, even if the tags happen to be fetched to
a different name than it was given by its creator.
To avoid confusion when a tag is stored under a different name
(and thus is not readable via git-rev-parse --verify, etc.) we show
a warning message if the name of the tag does not match the ref
we found it under and if that tag was also selected for output.
For example:
$ git tag -a -m "i am a test" testtag
$ mv .git/refs/tags/testtag .git/refs/tags/bobbytag
$ ./git-describe HEAD
warning: tag 'testtag' is really 'bobbytag' here
testtag
$ git tag -d testtag
error: tag 'testtag' not found.
$ git tag -d bobbytag
Deleted tag 'bobbytag'
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Gerrit Pape [Thu, 28 Feb 2008 18:44:42 +0000 (18:44 +0000)]
templates/Makefile: don't depend on local umask setting
Don't take the local umask setting into account when installing the
templates/* files and directories, running 'make install' with umask set
to 077 resulted in template/* installed with permissions 700 and 600.
The problem was discovered by Florian Zumbiehl, reported through
http://bugs.debian.org/467518
Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Daniel Barkalow [Thu, 28 Feb 2008 17:24:42 +0000 (12:24 -0500)]
Correct name of diff_flush() in API documentation
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 28 Feb 2008 07:37:39 +0000 (23:37 -0800)]
Start preparing for 1.5.4.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Shawn O. Pearce [Thu, 28 Feb 2008 06:29:19 +0000 (01:29 -0500)]
Merge branch 'maint'
* maint:
git-gui: Paper bag fix info dialog when no files are staged at commit
Shawn O. Pearce [Thu, 28 Feb 2008 06:28:45 +0000 (01:28 -0500)]
git-gui: Paper bag fix info dialog when no files are staged at commit
If the user tries to commit their changes without actually staging
anything we used to display an informational dialog suggesting they
first stage those changes, then retry the commit feature.
Unfortunately I broke this in
aba15f7 ("Ensure error dialogs always
appear over all other windows") and failed to fix it in the paper
bag fix that came one day after it.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Junio C Hamano [Thu, 28 Feb 2008 06:08:57 +0000 (22:08 -0800)]
format-patch: remove a leftover debugging message
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Thu, 21 Feb 2008 16:21:49 +0000 (16:21 +0000)]
completion: support format-patch's --cover-letter option
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 27 Feb 2008 07:18:38 +0000 (23:18 -0800)]
Fix "git log --merge --left-right"
The command did not reject the combination of these options, but
did not show left/right markers.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Wed, 27 Feb 2008 19:28:45 +0000 (20:28 +0100)]
http-push: add regression tests
http-push tests require a web server with WebDAV support.
This commit introduces a HTTPD test library, which can be configured using
the following environment variables.
GIT_TEST_HTTPD enable HTTPD tests
LIB_HTTPD_PATH web server path
LIB_HTTPD_MODULE_PATH web server modules path
LIB_HTTPD_PORT listening port
LIB_HTTPD_DAV enable DAV
LIB_HTTPD_SVN enable SVN
LIB_HTTPD_SSL enable SSL
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clemens Buchacher [Wed, 27 Feb 2008 19:27:53 +0000 (20:27 +0100)]
http-push: push <remote> :<branch> deletes remote branch
This mirrors current ssh/git push syntax.
Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>