Junio C Hamano [Sat, 11 Dec 2010 00:40:54 +0000 (16:40 -0800)]
Merge branch 'nd/extended-sha1-relpath' into next
* nd/extended-sha1-relpath:
get_sha1: teach ":$n:<path>" the same relative path logic
Junio C Hamano [Sat, 11 Dec 2010 00:40:54 +0000 (16:40 -0800)]
Merge branch 'jl/fetch-submodule-recursive' into next
* jl/fetch-submodule-recursive:
fetch_populated_submodules(): document dynamic allocation
Junio C Hamano [Sat, 11 Dec 2010 00:40:09 +0000 (16:40 -0800)]
Merge branch 'master' into next
* master:
Relnotes: remove items fixed on 'maint'
Prepare for 1.7.3.4
thread-utils.h: simplify the inclusion
Makefile: transport-helper uses thread-utils.h
Add --force to git-send-email documentation
Junio C Hamano [Sat, 11 Dec 2010 00:40:00 +0000 (16:40 -0800)]
Relnotes: remove items fixed on 'maint'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 11 Dec 2010 00:36:19 +0000 (16:36 -0800)]
Merge branch 'maint'
Junio C Hamano [Sat, 11 Dec 2010 00:35:00 +0000 (16:35 -0800)]
Prepare for 1.7.3.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 11 Dec 2010 00:13:14 +0000 (16:13 -0800)]
Merge branch 'jk/maint-decorate-01-bool' into maint
* jk/maint-decorate-01-bool:
log.decorate: accept 0/1 bool values
Junio C Hamano [Sat, 11 Dec 2010 00:13:03 +0000 (16:13 -0800)]
Merge branch 'mg/maint-tag-rfc1991' into maint
* mg/maint-tag-rfc1991:
tag: recognize rfc1991 signatures
tag: factor out sig detection for tag display
tag: factor out sig detection for body edits
verify-tag: factor out signature detection
t/t7004-tag: test handling of rfc1991 signatures
Junio C Hamano [Sat, 11 Dec 2010 00:12:51 +0000 (16:12 -0800)]
Merge branch 'ks/maint-getenv-fix' into maint
* ks/maint-getenv-fix:
setup: make sure git_dir path is in a permanent buffer, getenv(3) case
Junio C Hamano [Fri, 10 Dec 2010 18:32:12 +0000 (10:32 -0800)]
thread-utils.h: simplify the inclusion
All files that include this header file use the same four line
incantation:
#ifndef NO_PTHREADS
#include <pthread.h>
#include "thread-utils.h"
#endif
Move the responsibility for that gymnastics to the header file from the
files that include it. This approach makes it easier to later declare new
services that are related to threading in thread-utils.h and have them
available to all the threading code.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Fri, 10 Dec 2010 19:48:25 +0000 (13:48 -0600)]
Makefile: transport-helper uses thread-utils.h
transport-helper.o gained a dependency on thread-utils.h in
7851b1e (remote-fd/ext: finishing touches after code review,
2010-11-17).
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alejandro R. Sedeño [Fri, 10 Dec 2010 18:44:15 +0000 (13:44 -0500)]
Add --force to git-send-email documentation
Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 10 Dec 2010 07:42:05 +0000 (23:42 -0800)]
fetch_populated_submodules(): document dynamic allocation
... while fixing a miscounting.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 10 Dec 2010 00:51:08 +0000 (16:51 -0800)]
Merge branch 'master' into next
* master:
Documentation/git.txt: update list of maintenance releases
t9143: do not fail when unhandled.log.gz is not created
git-svn: allow the mergeinfo property to be set
Junio C Hamano [Fri, 10 Dec 2010 00:03:41 +0000 (16:03 -0800)]
Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn:
t9143: do not fail when unhandled.log.gz is not created
git-svn: allow the mergeinfo property to be set
Junio C Hamano [Thu, 9 Dec 2010 23:52:12 +0000 (15:52 -0800)]
Documentation/git.txt: update list of maintenance releases
Recently we have made 1.7.3.3, 1.7.2.4, 1.7.1.3 and 1.7.0.8.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 9 Dec 2010 21:38:05 +0000 (13:38 -0800)]
get_sha1: teach ":$n:<path>" the same relative path logic
We taught the object name parser to take ":./<path>", ":../<path>", etc.
and understand them to be relative to the current working directory.
Given that ":<path>" is just a short-hand for ":0:<path>" (i.e. "take
stage #0 of that path"), we should allow ":$n:<path>" to interpret them
the same way.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Torsten Bögershausen [Thu, 9 Dec 2010 19:53:19 +0000 (20:53 +0100)]
t9143: do not fail when unhandled.log.gz is not created
Do not depend on internal implementation details of svn,
which right now uses perl to create a .gz file.
So this test case will even work in the future,
when svn changes its implementation.
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
Steven Walter [Sat, 25 Sep 2010 03:51:50 +0000 (23:51 -0400)]
git-svn: allow the mergeinfo property to be set
As a first step towards preserving merges across dcommit, we need a
mechanism to update the svn:mergeinfo property.
[ew: fixed bashism and style issues in test case]
Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Junio C Hamano [Thu, 9 Dec 2010 18:49:05 +0000 (10:49 -0800)]
Merge branch 'master' into next
* master:
contrib/hooks/post-receive-email: fix return values from prep_for_email
Junio C Hamano [Thu, 9 Dec 2010 18:45:53 +0000 (10:45 -0800)]
Merge branch 'maint'
* maint:
contrib/hooks/post-receive-email: fix return values from prep_for_email
Junio C Hamano [Thu, 9 Dec 2010 18:38:16 +0000 (10:38 -0800)]
Merge branch 'jn/ignore-doc' into maint
* jn/ignore-doc:
Documentation: point to related commands from gitignore
Documentation: split gitignore page into sections
Junio C Hamano [Thu, 9 Dec 2010 18:36:51 +0000 (10:36 -0800)]
Merge branch 'jn/cherry-pick-refresh-index' into maint
* jn/cherry-pick-refresh-index:
cherry-pick/revert: transparently refresh index
Junio C Hamano [Thu, 9 Dec 2010 18:36:47 +0000 (10:36 -0800)]
Merge branch 'jl/add-p-reverse-message' into maint
* jl/add-p-reverse-message:
Correct help blurb in checkout -p and friends
Junio C Hamano [Thu, 9 Dec 2010 18:36:39 +0000 (10:36 -0800)]
Merge branch 'np/diff-in-corrupt-repository' into maint
* np/diff-in-corrupt-repository:
diff: don't presume empty file when corresponding object is missing
Junio C Hamano [Thu, 9 Dec 2010 18:36:36 +0000 (10:36 -0800)]
Merge branch 'fc/apply-p2-get-header-name' into maint
* fc/apply-p2-get-header-name:
test: git-apply -p2 rename/chmod only
Fix git-apply with -p greater than 1
Junio C Hamano [Thu, 9 Dec 2010 18:36:23 +0000 (10:36 -0800)]
Merge branch 'np/pack-broken-boundary' into maint
* np/pack-broken-boundary:
make pack-objects a bit more resilient to repo corruption
Junio C Hamano [Thu, 9 Dec 2010 18:36:16 +0000 (10:36 -0800)]
Merge branch 'ak/apply-non-git-epoch' into maint
* ak/apply-non-git-epoch:
apply: handle patches with funny filename and colon in timezone
apply: Recognize epoch timestamps with : in the timezone
Junio C Hamano [Thu, 9 Dec 2010 18:36:10 +0000 (10:36 -0800)]
Merge branch 'cm/diff-check-at-eol' into maint
* cm/diff-check-at-eol:
diff --check: correct line numbers of new blank lines at EOF
Junio C Hamano [Thu, 9 Dec 2010 18:36:04 +0000 (10:36 -0800)]
Merge branch 'tc/smart-http-post-redirect' into maint
* tc/smart-http-post-redirect:
smart-http: Don't change POST to GET when following redirect
Junio C Hamano [Thu, 9 Dec 2010 18:35:21 +0000 (10:35 -0800)]
Merge branch 'ab/require-perl-5.8' into maint
* ab/require-perl-5.8:
perl: use "use warnings" instead of -w
perl: bump the required Perl version to 5.8 from 5.6.[21]
Alan Raison [Thu, 9 Dec 2010 16:03:05 +0000 (16:03 +0000)]
contrib/hooks/post-receive-email: fix return values from prep_for_email
The function was returning 0 for failure and 1 for success which was
breaking the logic in the main loop. It now also returns in all
cases, rather than exiting.
Signed-off-by: Alan Raison <alan@theraisons.me.uk>
Acked-by: Kevin P. Fleming <kpfleming@digium.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 9 Dec 2010 17:26:43 +0000 (09:26 -0800)]
Merge branch 'jn/maint-svn-fe' into next
* jn/maint-svn-fe:
t9010 fails when no svn is available
Junio C Hamano [Thu, 9 Dec 2010 06:53:59 +0000 (22:53 -0800)]
t9010 fails when no svn is available
Running test t9010 without svn currently errors out for no good reason.
The test uses "svnadmin" without checking if svn is available. This was a
regression introduced by
b0ad24b (t9010 (svn-fe): Eliminate dependency on
svn perl bindings, 2010-10-10) when it stopped including ./lib-git-svn.sh
that had the safety.
This should fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 8 Dec 2010 23:15:30 +0000 (15:15 -0800)]
Merge branch 'jc/maint-no-openssl-build-fix' into next
* jc/maint-no-openssl-build-fix:
Do not link with -lcrypto under NO_OPENSSL
Junio C Hamano [Wed, 8 Dec 2010 22:54:13 +0000 (14:54 -0800)]
Do not link with -lcrypto under NO_OPENSSL
With
401857c (imap-send: link against libcrypto for HMAC and others,
2010-11-24) we started linking imap-send unconditionally with -lcrypto by
mistake; disable this when we are building under NO_OPENSSL.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'jc/maint-svn-info-test-fix' into next
* jc/maint-svn-info-test-fix:
t9119: do not compare "Text Last Updated" line from "svn info"
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'jn/submodule-b-current' into next
* jn/submodule-b-current:
git submodule: Remove now obsolete tests before cloning a repo
git submodule -b ... of current HEAD fails
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'aa/status-hilite-branch' into next
* aa/status-hilite-branch:
status: show branchname with a configurable color
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'ef/help-cmd-prefix' into next
* ef/help-cmd-prefix:
help: always suggest common-cmds if prefix of cmd
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'jn/fast-import-blob-access' into next
* jn/fast-import-blob-access:
t9300: remove unnecessary use of /dev/stdin
fast-import: Allow cat-blob requests at arbitrary points in stream
fast-import: let importers retrieve blobs
fast-import: clarify documentation of "feature" command
fast-import: stricter parsing of integer options
Conflicts:
fast-import.c
Junio C Hamano [Wed, 8 Dec 2010 20:25:29 +0000 (12:25 -0800)]
Merge branch 'jn/gitweb-per-request-config' into next
* jn/gitweb-per-request-config:
gitweb: document $per_request_config better
gitweb: selectable configurations that change with each request
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'mz/maint-rebase-stat-config' into next
* mz/maint-rebase-stat-config:
rebase: only show stat if configured to true
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'mz/pull-rebase-rebased' into next
* mz/pull-rebase-rebased:
Use reflog in 'pull --rebase . foo'
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'nd/maint-hide-checkout-index-from-error' into next
* nd/maint-hide-checkout-index-from-error:
entry.c: remove "checkout-index" from error messages
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'gb/web--browse' into next
* gb/web--browse:
web--browse: better support for chromium
web--browse: support opera, seamonkey and elinks
web--browse: split valid_tool list
web--browse: coding style
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'ja/maint-pull-rebase-doc' into next
* ja/maint-pull-rebase-doc:
git-pull.txt: Mention branch.autosetuprebase
Junio C Hamano [Wed, 8 Dec 2010 20:25:28 +0000 (12:25 -0800)]
Merge branch 'js/configurable-tab' into next
* js/configurable-tab:
Make the tab width used for whitespace checks configurable
Junio C Hamano [Wed, 8 Dec 2010 20:25:27 +0000 (12:25 -0800)]
Merge branch 'js/maint-apply-tab-in-indent-fix' into next
* js/maint-apply-tab-in-indent-fix:
apply --whitespace=fix: fix tab-in-indent
Junio C Hamano [Wed, 8 Dec 2010 20:25:27 +0000 (12:25 -0800)]
Merge branch 'ef/win32-dirent' into next
* ef/win32-dirent:
win32: use our own dirent.h
msvc: opendir: handle paths ending with a slash
win32: dirent: handle errors
msvc: opendir: do not start the search
msvc: opendir: allocate enough memory
msvc: opendir: fix malloc-failure
Conflicts:
Makefile
Junio C Hamano [Wed, 8 Dec 2010 20:25:27 +0000 (12:25 -0800)]
Merge branch 'jk/asciidoc-update' into next
* jk/asciidoc-update:
docs: default to more modern toolset
Junio C Hamano [Wed, 8 Dec 2010 20:25:26 +0000 (12:25 -0800)]
Merge branch 'jk/maint-reflog-bottom' into next
* jk/maint-reflog-bottom:
reflogs: clear flags properly in corner case
Junio C Hamano [Wed, 8 Dec 2010 20:25:25 +0000 (12:25 -0800)]
Merge branch 'jn/maint-fast-import-object-reuse' into next
* jn/maint-fast-import-object-reuse:
fast-import: insert new object entries at start of hash bucket
Junio C Hamano [Wed, 8 Dec 2010 20:25:25 +0000 (12:25 -0800)]
Merge branch 'jn/fast-import-ondemand-checkpoint' into next
* jn/fast-import-ondemand-checkpoint:
fast-import: treat SIGUSR1 as a request to access objects early
Junio C Hamano [Wed, 8 Dec 2010 20:25:25 +0000 (12:25 -0800)]
Merge branch 'jn/maint-svn-fe' into next
* jn/maint-svn-fe:
vcs-svn: fix intermittent repo_tree corruption
treap: make treap_insert return inserted node
t9010 (svn-fe): Eliminate dependency on svn perl bindings
Junio C Hamano [Wed, 8 Dec 2010 20:25:25 +0000 (12:25 -0800)]
Merge branch 'mz/rebase-abort-reflog-fix' into next
* mz/rebase-abort-reflog-fix:
rebase --abort: do not update branch ref
Junio C Hamano [Wed, 8 Dec 2010 20:25:25 +0000 (12:25 -0800)]
Merge branch 'mz/rebase-i-verify' into next
* mz/rebase-i-verify:
rebase: support --verify
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'tc/format-patch-p' into next
* tc/format-patch-p:
format-patch: page output with --stdout
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'tc/http-urls-ends-with-slash' into next
* tc/http-urls-ends-with-slash:
http-fetch: rework url handling
http-push: add trailing slash at arg-parse time, instead of later on
http-push: check path length before using it
http-push: Normalise directory names when pushing to some WebDAV servers
http-backend: use end_url_with_slash()
url: add str wrapper for end_url_with_slash()
shift end_url_with_slash() from http.[ch] to url.[ch]
t5550-http-fetch: add test for http-fetch
t5550-http-fetch: add missing '&&'
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'nd/extended-sha1-relpath' into next
* nd/extended-sha1-relpath:
get_sha1: support relative path ":path" syntax
Make prefix_path() return char* without const
Conflicts:
sha1_name.c
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'jn/parse-options-extra' into next
* jn/parse-options-extra:
update-index: migrate to parse-options API
setup: save prefix (original cwd relative to toplevel) in startup_info
parse-options: make resuming easier after PARSE_OPT_STOP_AT_NON_OPTION
parse-options: allow git commands to invent new option types
parse-options: never suppress arghelp if LITERAL_ARGHELP is set
parse-options: do not infer PARSE_OPT_NOARG from option type
parse-options: sanity check PARSE_OPT_NOARG flag
parse-options: move NODASH sanity checks to parse_options_check
parse-options: clearer reporting of API misuse
parse-options: Don't call parse_options_check() so much
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'jn/git-cmd-h-bypass-setup' into next
* jn/git-cmd-h-bypass-setup:
update-index -h: show usage even with corrupt index
merge -h: show usage even with corrupt index
ls-files -h: show usage even with corrupt index
gc -h: show usage even with broken configuration
commit/status -h: show usage even with broken configuration
checkout-index -h: show usage even in an invalid repository
branch -h: show usage even in an invalid repository
Conflicts:
builtin/merge.c
Junio C Hamano [Wed, 8 Dec 2010 20:25:24 +0000 (12:25 -0800)]
Merge branch 'jl/fetch-submodule-recursive' into next
* jl/fetch-submodule-recursive:
Submodules: Add the "fetchRecurseSubmodules" config option
Add the 'fetch.recurseSubmodules' config setting
fetch/pull: Add the --recurse-submodules option
Conflicts:
builtin/fetch.c
Junio C Hamano [Wed, 8 Dec 2010 19:26:21 +0000 (11:26 -0800)]
Merge branch 'master' into next
* master:
Junio C Hamano [Wed, 8 Dec 2010 19:25:52 +0000 (11:25 -0800)]
Merge branch 'nd/maint-fix-add-typo-detection' (early part)
* 'nd/maint-fix-add-typo-detection' (early part):
add: do not rely on dtype being NULL behavior
Junio C Hamano [Wed, 8 Dec 2010 19:25:04 +0000 (11:25 -0800)]
Merge branch 'jn/gitweb-time-hires-comes-with-5.8'
* jn/gitweb-time-hires-comes-with-5.8:
gitweb: Time::HiRes is in core for Perl 5.8
Junio C Hamano [Wed, 8 Dec 2010 19:24:14 +0000 (11:24 -0800)]
Merge branch 'il/remote-fd-ext'
* il/remote-fd-ext:
remote-fd/ext: finishing touches after code review
git-remote-ext
git-remote-fd
Add bidirectional_transfer_loop()
Conflicts:
compat/mingw.h
Junio C Hamano [Wed, 8 Dec 2010 19:24:14 +0000 (11:24 -0800)]
Merge branch 'jk/pager-per-command'
* jk/pager-per-command:
allow command-specific pagers in pager.<cmd>
Junio C Hamano [Wed, 8 Dec 2010 19:24:14 +0000 (11:24 -0800)]
Merge branch 'jk/maint-decorate-01-bool'
* jk/maint-decorate-01-bool:
log.decorate: accept 0/1 bool values
Junio C Hamano [Wed, 8 Dec 2010 19:24:14 +0000 (11:24 -0800)]
Merge branch 'gc/http-with-non-ascii-username-url'
* gc/http-with-non-ascii-username-url:
Fix username and password extraction from HTTP URLs
t5550: test HTTP authentication and userinfo decoding
Conflicts:
t/lib-httpd/apache.conf
Junio C Hamano [Wed, 8 Dec 2010 19:24:13 +0000 (11:24 -0800)]
Merge branch 'ks/maint-getenv-fix'
* ks/maint-getenv-fix:
setup: make sure git_dir path is in a permanent buffer, getenv(3) case
Junio C Hamano [Wed, 8 Dec 2010 19:24:13 +0000 (11:24 -0800)]
Merge branch 'gb/gitweb-remote-heads'
* gb/gitweb-remote-heads:
git instaweb: enable remote_heads
gitweb: group remote heads by remote
gitweb: provide a routine to display (sub)sections
gitweb: refactor repository URL printing
gitweb: remotes view for a single remote
gitweb: allow action specialization in page header
gitweb: nagivation menu for tags, heads and remotes
gitweb: separate heads and remotes lists
gitweb: git_get_heads_list accepts an optional list of refs
gitweb: introduce remote_heads feature
gitweb: use fullname as hash_base in heads link
Junio C Hamano [Wed, 8 Dec 2010 19:24:13 +0000 (11:24 -0800)]
Merge branch 'mg/maint-tag-rfc1991'
* mg/maint-tag-rfc1991:
tag: recognize rfc1991 signatures
tag: factor out sig detection for tag display
tag: factor out sig detection for body edits
verify-tag: factor out signature detection
t/t7004-tag: test handling of rfc1991 signatures
Junio C Hamano [Wed, 8 Dec 2010 19:24:12 +0000 (11:24 -0800)]
Merge branch 'jh/notes-merge'
* jh/notes-merge: (23 commits)
Provide 'git merge --abort' as a synonym to 'git reset --merge'
cmd_merge(): Parse options before checking MERGE_HEAD
Provide 'git notes get-ref' to easily retrieve current notes ref
git notes merge: Add testcases for merging notes trees at different fanouts
git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
git notes merge: --commit should fail if underlying notes ref has moved
git notes merge: List conflicting notes in notes merge commit message
git notes merge: Manual conflict resolution, part 2/2
git notes merge: Manual conflict resolution, part 1/2
Documentation: Preliminary docs on 'git notes merge'
git notes merge: Add automatic conflict resolvers (ours, theirs, union)
git notes merge: Handle real, non-conflicting notes merges
builtin/notes.c: Refactor creation of notes commits.
git notes merge: Initial implementation handling trivial merges only
builtin/notes.c: Split notes ref DWIMmery into a separate function
notes.c: Use two newlines (instead of one) when concatenating notes
(trivial) t3303: Indent with tabs instead of spaces for consistency
notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond
notes.h/c: Allow combine_notes functions to remove notes
notes.c: Reorder functions in preparation for next commit
...
Conflicts:
builtin.h
Junio C Hamano [Wed, 8 Dec 2010 19:24:11 +0000 (11:24 -0800)]
Merge branch 'jk/diff-CBM'
* jk/diff-CBM:
diff: report bogus input to -C/-M/-B
Junio C Hamano [Wed, 8 Dec 2010 00:13:52 +0000 (16:13 -0800)]
Merge branch 'master' into next
* master:
git-rm.txt: Fix quoting
Makefile: dependencies for vcs-svn tests
parse-remote: handle detached HEAD
Junio C Hamano [Wed, 8 Dec 2010 00:13:43 +0000 (16:13 -0800)]
Merge branch 'maint'
* maint:
git-rm.txt: Fix quoting
Jonathan Nieder [Sun, 5 Dec 2010 09:32:53 +0000 (03:32 -0600)]
vcs-svn: fix intermittent repo_tree corruption
Pointers to directory entries do not remain valid after a call to
dent_insert.
Noticed in the course of importing a small Subversion repository
(~1000 revs); after setting up a dirent for a certain path as a
placeholder, by luck dent_insert would trigger a realloc that
shifted around addresses, resulting in an import with that file
replaced by a directory.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Sun, 5 Dec 2010 09:35:17 +0000 (03:35 -0600)]
treap: make treap_insert return inserted node
Suppose I try the following:
struct int_node *node = node_pointer(node_alloc(1));
node->n = 5;
treap_insert(&root, node);
printf("%d\n", node->n);
Usually the result will be 5. But since treap_insert draws memory
from the node pool, if the caller is unlucky then (1) the node pool
will be full and (2) realloc will be forced to move the node pool to
find room, so the node address becomes invalid and the result of
dereferencing it is undefined.
So we ought to use offsets in preference to pointers for references
that would remain valid after a call to treap_insert. Tweak the
signature to hint at a certain special case: since the inserted node
can change address (though not offset), as a convenience teach
treap_insert to return its new address.
So the motivational example could be fixed by adding "node =".
struct int_node *node = node_pointer(node_alloc(1));
node->n = 5;
node = treap_insert(&root, node);
printf("%d\n", node->n);
Based on a true story.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Sun, 28 Nov 2010 03:37:32 +0000 (10:37 +0700)]
get_sha1: support relative path ":path" syntax
Currently :path and ref:path can be used to refer to a specific object
in index or ref respectively. "path" component is absolute path. This
patch allows "path" to be written as "./path" or "../path", which is
relative to user's original cwd.
This does not work in commands for which startup_info is NULL
(i.e. non-builtin ones, it seems none of them needs this anyway).
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Thu, 11 Nov 2010 14:08:03 +0000 (21:08 +0700)]
Make prefix_path() return char* without const
prefix_path() allocates new buffer. There's no reason for it to keep
the buffer for itself and waste memory.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 1 Dec 2010 23:34:06 +0000 (17:34 -0600)]
update-index: migrate to parse-options API
--refresh and --really-refresh accept flags (like -q) and modify
an error indicator. It might make sense to make the error
indicator global, but just pass the flags and a pointer to the error
indicator in a struct instead.
--cacheinfo wants 3 arguments. Use the OPTION_LOWLEVEL_CALLBACK
extension to grab them and PARSE_OPT_NOARG to disallow the "sticked"
--cacheinfo=foo form. (The resulting message
$ git update-index --cacheinfo=foo
error: option `cacheinfo' takes no value
is unfortunately incorrect.)
--assume-unchanged and --no-assume-unchanged probably should use the
OPT_UYN feature; but use a callback for now so the existing MARK_FLAG
and UNMARK_FLAG values can be used.
--stdin and --index-info are still constrained to be the last argument
(implemented using the OPTION_LOWLEVEL_CALLBACK extension).
--unresolve and --again consume all arguments that come after them
(also using OPTION_LOWLEVEL_CALLBACK).
The order of options matters. Each path on the command line is
affected only by the options that come before it. A custom
argument-parsing loop with parse_options_step() brings that about.
In exchange for all the fuss, we get the usual perks: support for
un-sticked options, better usage error messages, more useful -h
output, and argument parsing code that should be easier to tweak
in the future.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Wed, 1 Dec 2010 23:33:22 +0000 (17:33 -0600)]
setup: save prefix (original cwd relative to toplevel) in startup_info
Save the path from the original cwd to the cwd at the end of the
setup procedure in the startup_info struct introduced in
e37c1329
(2010-08-05). The value cannot vary from thread to thread anyway,
since the cwd is global.
So now in your builtin command, instead of passing prefix around,
when you want to convert a user-supplied path to a cwd-relative
path, you can use startup_info->prefix directly.
Caveat: As with the return value from setup_git_directory_gently(),
startup_info->prefix would be NULL when the original cwd is not a
subdir of the toplevel.
Longer term, this would allow the prefix to be reused when several
noncooperating functions require access to the same repository (for
example, when accessing configuration before running a builtin).
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 1 Dec 2010 23:32:55 +0000 (17:32 -0600)]
parse-options: make resuming easier after PARSE_OPT_STOP_AT_NON_OPTION
Introduce a PARSE_OPT_NON_OPTION state, so parse_option_step()
callers can easily distinguish between non-options and other
reasons for option parsing termination (like "--").
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 1 Dec 2010 23:32:16 +0000 (17:32 -0600)]
parse-options: allow git commands to invent new option types
parse-options provides a variety of option behaviors, including
OPTION_CALLBACK, which should take care of just about any sane
behavior. All supported behaviors obey the following constraint:
A --foo option can only accept (and base its behavior on)
one argument, which would be the following command-line
argument in the "unsticked" form.
Alas, some existing git commands have options that do not obey that
constraint. For example, update-index --cacheinfo takes three
arguments, and update-index --resolve takes all later parameters as
arguments.
Introduces an OPTION_LOWLEVEL_CALLBACK backdoor to parse-options so
such option types can be supported without tempting inventors of other
commands through mention in the public API. Commands can set the
callback field to a function accepting three arguments: the option
parsing context, the option itself, and a flag indicating whether the
the option was negated. When the option is encountered, that function
is called to take over from get_value(). The return value should be
zero for success, -1 for usage errors.
Thanks to Stephen Boyd for API guidance.
Improved-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 1 Dec 2010 23:31:36 +0000 (17:31 -0600)]
parse-options: never suppress arghelp if LITERAL_ARGHELP is set
The PARSE_OPT_LITERAL_ARGHELP flag allows a program to override the
standard "<argument> for mandatory, [argument] for optional" markup in
its help message. Extend it to override the usual "no text for
disallowed", too (for the PARSE_OPT_NOARG | PARSE_OPT_LITERAL_ARGHELP
case, which was previously meaningless), to be more intuitive.
The motivation is to allow update-index to correctly advertise
--cacheinfo <mode> <object> <path>
add the specified entry to the index
while abusing PARSE_OPT_NOARG to disallow the "sticked form"
--cacheinfo=<mode> <object> <path>
Noticed-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephen Boyd [Wed, 1 Dec 2010 23:30:40 +0000 (17:30 -0600)]
parse-options: do not infer PARSE_OPT_NOARG from option type
Simplify the "takes no value" error path by relying on PARSE_OPT_NOARG
being set correctly. That is:
- if the PARSE_OPT_NOARG flag is set, reject --opt=value
regardless of the option type;
- if the PARSE_OPT_NOARG flag is unset, accept --opt=value
regardless of the option type.
This way, the accepted usage more closely matches the usage advertised
with --help-all.
No functional change intended, since the NOARG flag is only used
with "boolean-only" option types in existing parse_options callers.
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Thu, 2 Dec 2010 06:08:57 +0000 (00:08 -0600)]
parse-options: sanity check PARSE_OPT_NOARG flag
Some option types cannot use an argument --- boolean options that
would set a bit or flag or increment a counter, for example. If
configured in the flag word to accept an argument anyway, the result
is an argument that is advertised in "program -h" output only to be
rejected by parse-options::get_value.
Luckily all current users of these option types use PARSE_OPT_NOARG
and do not use PARSE_OPT_OPTARG. Add a check to ensure that that
remains true. The check is run once for each invocation of
parse_option_start().
Improved-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Thu, 2 Dec 2010 06:05:05 +0000 (00:05 -0600)]
parse-options: move NODASH sanity checks to parse_options_check
A dashless switch (like '(' passed to 'git grep') cannot be negated,
cannot be attached to an argument, and cannot have a long form.
Currently parse-options runs the related sanity checks when the
dashless option is used; better to always check them at the start of
option parsing, so mistakes can be caught more quickly.
The error message at the new call site is less specific about the
nature of the error, for simplicity. On the other hand, it prints
which switch was problematic. Before:
fatal: BUG: dashless options can't be long
After:
error: BUG: switch '(' uses feature not supported for dashless options
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Thu, 2 Dec 2010 06:01:18 +0000 (00:01 -0600)]
parse-options: clearer reporting of API misuse
The PARSE_OPT_LASTARG_DEFAULT flag is meant for options like
--contains that (1) traditionally had a mandatory argument and
(2) have some better behavior to use when appearing in the final
position. It makes no sense to combine this with OPTARG, so ever
since v1.6.4-rc0~71 (parse-options: add parse_options_check to
validate option specs, 2009-07-09) this mistake is flagged with
error: `--option` uses incompatible flags LASTARG_DEFAULT and OPTARG
and an exit status representing an error in commandline usage.
Unfortunately that which might confuse scripters calling such an
erroneous program into thinking the _script_ contains an error.
Clarify that it is an internal error by dying with a message beginning
"error: BUG: ..." and status 128.
While at it, clean up parse_options_check to prepare for more checks.
Long term, it would be nicer to make such checks happen at compile
time.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber [Tue, 7 Dec 2010 09:07:11 +0000 (10:07 +0100)]
git-rm.txt: Fix quoting
Literal " produces typographically incorrect quotations, but "works" in
most circumstances. In the subheadings of git-rm.txt, it "works" for the
html backend but not for the docbook conversion to nroff: double "" and
spurious double spaces appear in the output.
Replace "incorrect" quotations by ``correct'' ones, and fix other
"quotations" which are really `code fragments`.
This should make git-rm.txt "-clean.
Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Sun, 10 Oct 2010 05:50:32 +0000 (00:50 -0500)]
Makefile: dependencies for vcs-svn tests
The vcs-svn tests (test-treap.o et al) depend on the vcs-svn
headers for declarations and inline functions. Declare the
dependency. While at it, declare a dependency of the vcs-svn
objects (vcs-svn/string_pool.o et al) on $(LIB_H) to reflect use
within the vcs-svn library of git-compat-util.h and cache.h.
Without this change, tweaks to inline functions in those headers
do not provoke rebuilds of the corresponding tests[*], making
such changes unnecessarily difficult to test.
Before:
$ touch vcs-svn/*.h && make test-treap
$
After:
$ touch vcs-svn/*.h && make test-treap
CC test-treap.o
LINK test-treap
$
[*] unless COMPUTE_HEADER_DEPENDENCIES is enabled
Detected with "make CHECK_HEADER_DEPENDENCIES=1".
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Santi Béjar [Mon, 6 Dec 2010 10:20:11 +0000 (11:20 +0100)]
parse-remote: handle detached HEAD
get_remote_merge_branch with zero or one arguments returns the
upstream branch. But a detached HEAD does no have an upstream branch,
as it is not tracking anything. Handle this case testing the exit code
of "git symbolic-ref -q HEAD".
Reported-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Santi Béjar <santi@agolina.net>
Tested-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephen Boyd [Mon, 6 Dec 2010 07:57:42 +0000 (23:57 -0800)]
parse-options: Don't call parse_options_check() so much
parse_options_check() is being called for each invocation of
parse_options_step which can be quite a bit for some commands. The
commit introducing this function
cb9d398 (parse-options: add
parse_options_check to validate option specs., 2009-06-09) had the
correct motivation and explicitly states that parse_options_check()
should be called from parse_options_start(). However, the implementation
differs from the motivation. Fix it.
Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jens Lehmann [Sat, 4 Dec 2010 23:27:35 +0000 (00:27 +0100)]
git submodule: Remove now obsolete tests before cloning a repo
Since
55892d23 "git clone" itself checks that the destination path is not
a file but an empty directory if it exists, so there is no need anymore
for module_clone() to check that too.
Two tests have been added to test the behavior of "git submodule add" when
path is a file or a directory (A subshell had to be added to the former
last test to stay in the right directory).
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Nieder [Wed, 1 Dec 2010 18:50:46 +0000 (12:50 -0600)]
git submodule -b ... of current HEAD fails
git submodule add -b $branch $repository
fails when HEAD already points to $branch in $repository.
Reported-by: Klaus Ethgen <Klaus@Ethgen.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 7 Dec 2010 00:00:02 +0000 (16:00 -0800)]
t9119: do not compare "Text Last Updated" line from "svn info"
On the "Text Last Updated" line, "git svn info <file>" does not give the
timestamp of the commit that touched the path most recently, unlike "svn
info <file>". Do not expect the output from two commands to match on
these lines.
There was a "ptouch" attempt to transplant the timestamp from svn working
tree files to corresponding git working tree files, which mostly hid this
difference, but is made pointless now with this change. Remove the helper
function and calls to it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Erik Faye-Lund [Fri, 26 Nov 2010 16:00:39 +0000 (17:00 +0100)]
help: always suggest common-cmds if prefix of cmd
If someone runs "git st", the command "git status" is not suggested
because it's not one of the closest levenshtein-neighbour.
Reserve the distance of 0 for common commands where the entered command
is a prefixe, as these are often more likely to be what the user meant.
This way, "git status" is the first suggestion, while a list of possible
typos are still suggested as well.
Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 4 Dec 2010 00:13:44 +0000 (16:13 -0800)]
Merge branch 'master' into next
* master:
Git 1.7.3.3
CodingGuidelines: mention whitespace preferences for shell scripts
Documentation: do not misinterpret pull refspec as bold text
Junio C Hamano [Sat, 4 Dec 2010 00:13:06 +0000 (16:13 -0800)]
Merge branch 'jn/ignore-doc'
* jn/ignore-doc:
Documentation: point to related commands from gitignore
Documentation: split gitignore page into sections