gitweb.git
cmd_fetch_pack(): return early if finish_connect()... Michael Haggerty Sun, 9 Sep 2012 06:19:46 +0000 (08:19 +0200)

cmd_fetch_pack(): return early if finish_connect() fails

This simplifies the logic without changing the behavior.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter_refs(): simplify logicMichael Haggerty Sun, 9 Sep 2012 06:19:45 +0000 (08:19 +0200)

filter_refs(): simplify logic

Simplify flow within loop: first decide whether to keep the reference,
then keep/free it. This makes it clearer that each ref has exactly
two possible destinies, and removes duplication of the code for
appending the reference to the linked list.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter_refs(): build refs list as we goMichael Haggerty Sun, 9 Sep 2012 06:19:44 +0000 (08:19 +0200)

filter_refs(): build refs list as we go

Instead of temporarily storing matched refs to temporary array
"return_refs", simply append them to newlist as we go. This changes
the order of references in newlist to strictly sorted if "--all" and
"--depth" and named references are all specified, but that usage is
broken anyway (see the last two tests in t5500).

This changes the last test in t5500 from segfaulting into just
emitting a spurious error (this will be fixed in a moment).

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter_refs(): delete matched refs from sought listMichael Haggerty Sun, 9 Sep 2012 06:19:43 +0000 (08:19 +0200)

filter_refs(): delete matched refs from sought list

Remove any references that are available from the remote from the
sought list (rather than overwriting their names with NUL characters,
as previously). Mark matching entries by writing a non-NULL pointer
to string_list_item::util during the iteration, then use
filter_string_list() later to filter out the entries that have been
marked.

Document this aspect of fetch_pack() in a comment in the header file.
(More documentation is obviously still needed.)

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch_pack(): update sought->nr to reflect number of... Michael Haggerty Sun, 9 Sep 2012 06:19:42 +0000 (08:19 +0200)

fetch_pack(): update sought->nr to reflect number of unique entries

fetch_pack() removes duplicates from the "sought" list, thereby
shrinking the list. But previously, the caller was not informed about
the shrinkage. This would cause a spurious error message to be
emitted by cmd_fetch_pack() if "git fetch-pack" is called with
duplicate refnames.

Instead, remove duplicates using string_list_remove_duplicates(),
which adjusts sought->nr to reflect the new length of the list.

The last test of t5500 inexplicably *required* "git fetch-pack" to
fail when fetching a list of references that contains duplicates;
i.e., it insisted on the buggy behavior. So change the test to expect
the correct behavior.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

filter_refs(): do not check the same sought_pos twiceMichael Haggerty Sun, 9 Sep 2012 06:19:41 +0000 (08:19 +0200)

filter_refs(): do not check the same sought_pos twice

Once a match has been found at sought_pos, the entry is zeroed and no
future attempts will match that entry. So increment sought_pos to
avoid checking against the zeroed-out entry during the next iteration.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Change fetch_pack() and friends to take string_list... Michael Haggerty Sun, 9 Sep 2012 06:19:40 +0000 (08:19 +0200)

Change fetch_pack() and friends to take string_list arguments

Instead of juggling <nr_heads,heads> (sometimes called
<nr_match,match>), pass around the list of references to be sought in
a single string_list variable called "sought". Future commits will
make more use of string_list functionality.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fetch_pack(): reindent function decl and defnMichael Haggerty Sun, 9 Sep 2012 06:19:39 +0000 (08:19 +0200)

fetch_pack(): reindent function decl and defn

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rename static function fetch_pack() to http_fetch_pack()Michael Haggerty Sun, 9 Sep 2012 06:19:38 +0000 (08:19 +0200)

Rename static function fetch_pack() to http_fetch_pack()

Avoid confusion with the non-static function of the same name from
fetch-pack.h.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5500: add tests of fetch-pack --all --depth=N $URL... Michael Haggerty Sun, 9 Sep 2012 06:19:37 +0000 (08:19 +0200)

t5500: add tests of fetch-pack --all --depth=N $URL $REF

Document some bugs in "git fetch-pack":

1. If "git fetch-pack" is called with "--all", "--depth", and an
explicit existing non-tag reference to fetch, then it falsely reports
that the reference was not found, even though it was fetched
correctly.

2. If "git fetch-pack" is called with "--all", "--depth", and an
explicit existing tag reference to fetch, then it segfaults in
filter_refs() because return_refs is used without having been
initialized.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5500: add tests of error output for missing refsMichael Haggerty Sun, 9 Sep 2012 06:19:36 +0000 (08:19 +0200)

t5500: add tests of error output for missing refs

If "git fetch-pack" is called with reference names that do not exist
on the remote, then it should emit an error message

error: no such remote ref refs/heads/xyzzy

This is currently broken if *only* missing references are passed to
"git fetch-pack".

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

api-string-list.txt: initialize the string_list the... Michael Haggerty Wed, 12 Sep 2012 14:04:47 +0000 (16:04 +0200)

api-string-list.txt: initialize the string_list the easy way

In the demo code blurb, show how to initialize the string_list using
STRING_LIST_INIT_NODUP rather than memset().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list: add a function string_list_longest_prefix()Michael Haggerty Wed, 12 Sep 2012 14:04:46 +0000 (16:04 +0200)

string_list: add a function string_list_longest_prefix()

Add a function that finds the longest string from a string_list that
is a prefix of a given string.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list: add a new function, string_list_remove_dup... Michael Haggerty Wed, 12 Sep 2012 14:04:45 +0000 (16:04 +0200)

string_list: add a new function, string_list_remove_duplicates()

Add a function that deletes duplicate entries from a sorted
string_list.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list: add a new function, filter_string_list()Michael Haggerty Wed, 12 Sep 2012 14:04:44 +0000 (16:04 +0200)

string_list: add a new function, filter_string_list()

This function allows entries that don't match a specified criterion to
be discarded from a string_list while preserving the order of the
remaining entries.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list: add two new functions for splitting stringsMichael Haggerty Wed, 12 Sep 2012 14:04:43 +0000 (16:04 +0200)

string_list: add two new functions for splitting strings

Add two new functions, string_list_split() and
string_list_split_in_place(). These split a string into a string_list
on a separator character. The first makes copies of the substrings
(leaving the input string untouched) and the second splits the
original string in place, overwriting the separator characters with
NULs and referring to the original string's memory.

These functions are similar to the strbuf_split_*() functions except
that they work with the more powerful string_list interface.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

string_list: add function string_list_append_nodup()Michael Haggerty Wed, 12 Sep 2012 14:04:42 +0000 (16:04 +0200)

string_list: add function string_list_append_nodup()

Add a new function that appends a string to a string_list without
copying it. This can be used to pass ownership of an already-copied
string to a string_list that has strdup_strings set.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

The fourth batch for 1.8.0Junio C Hamano Fri, 7 Sep 2012 18:25:22 +0000 (11:25 -0700)

The fourth batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'nd/branch-v-alignment'Junio C Hamano Fri, 7 Sep 2012 18:10:02 +0000 (11:10 -0700)

Merge branch 'nd/branch-v-alignment'

Output from "git branch -v" contains "(no branch)" that could be
localized, but the code to align it along with the names of branches
were counting in bytes, not in display columns.

* nd/branch-v-alignment:
branch -v: align even when branch names are in UTF-8

Merge branch 'jk/maint-http-half-auth-push'Junio C Hamano Fri, 7 Sep 2012 18:09:49 +0000 (11:09 -0700)

Merge branch 'jk/maint-http-half-auth-push'

Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.

* jk/maint-http-half-auth-push:
http: prompt for credentials on failed POST
http: factor out http error code handling
t: test http access to "half-auth" repositories
t: test basic smart-http authentication
t/lib-httpd: recognize */smart/* repos as smart-http
t/lib-httpd: only route auth/dumb to dumb repos
t5550: factor out http auth setup
t5550: put auth-required repo in auth/dumb

Merge branch 'jc/maint-doc-checkout-b-always-takes... Junio C Hamano Fri, 7 Sep 2012 18:09:36 +0000 (11:09 -0700)

Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name'

The synopsis said "checkout [-B branch]" to make it clear the branch
name is a parameter to the option, but the heading for the option
description was "-B::", not "-B branch::", making the documentation
misleading. There may be room in documentation pages of other
commands for similar improvements.

* jc/maint-doc-checkout-b-always-takes-branch-name:
doc: "git checkout -b/-B/--orphan" always takes a branch name

Merge branch 'jc/apply-binary-p0'Junio C Hamano Fri, 7 Sep 2012 18:09:26 +0000 (11:09 -0700)

Merge branch 'jc/apply-binary-p0'

"git apply -p0" did not parse pathnames on "diff --git" line
correctly. This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode). Textual patches, renames or
mode changes have preimage and postimage pathnames in different
places in a form that can be parsed unambiguously and did not suffer
from this problem.

* jc/apply-binary-p0:
apply: compute patch->def_name correctly under -p0

Merge branch 'jc/dotdot-is-parent-directory'Junio C Hamano Fri, 7 Sep 2012 18:09:18 +0000 (11:09 -0700)

Merge branch 'jc/dotdot-is-parent-directory'

"git log .." errored out saying it is both rev range and a path when
there is no disambiguating "--" is on the command line. Update the
command line parser to interpret ".." as a path in such a case.

* jc/dotdot-is-parent-directory:
specifying ranges: we did not mean to make ".." an empty set

Merge branch 'nd/i18n-parseopt-help'Junio C Hamano Fri, 7 Sep 2012 18:09:09 +0000 (11:09 -0700)

Merge branch 'nd/i18n-parseopt-help'

A lot of i18n mark-up for the help text from "git <cmd> -h".

* nd/i18n-parseopt-help: (66 commits)
Use imperative form in help usage to describe an action
Reduce translations by using same terminologies
i18n: write-tree: mark parseopt strings for translation
i18n: verify-tag: mark parseopt strings for translation
i18n: verify-pack: mark parseopt strings for translation
i18n: update-server-info: mark parseopt strings for translation
i18n: update-ref: mark parseopt strings for translation
i18n: update-index: mark parseopt strings for translation
i18n: tag: mark parseopt strings for translation
i18n: symbolic-ref: mark parseopt strings for translation
i18n: show-ref: mark parseopt strings for translation
i18n: show-branch: mark parseopt strings for translation
i18n: shortlog: mark parseopt strings for translation
i18n: rm: mark parseopt strings for translation
i18n: revert, cherry-pick: mark parseopt strings for translation
i18n: rev-parse: mark parseopt strings for translation
i18n: reset: mark parseopt strings for translation
i18n: rerere: mark parseopt strings for translation
i18n: status: mark parseopt strings for translation
i18n: replace: mark parseopt strings for translation
...

Merge branch 'nd/am-i18n-fix'Junio C Hamano Fri, 7 Sep 2012 18:09:04 +0000 (11:09 -0700)

Merge branch 'nd/am-i18n-fix'

"git am" wasn't marked up for i18n properly.

* nd/am-i18n-fix:
am: quote string for translation before passing to eval_gettextln

Merge branch 'jk/config-warn-on-inaccessible-paths'Junio C Hamano Fri, 7 Sep 2012 18:08:56 +0000 (11:08 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths'

When looking for $HOME/.gitconfig etc., it is OK if we cannot read
them because they do not exist, but we did not diagnose existing
files that we cannot read.

* jk/config-warn-on-inaccessible-paths:
warn_on_inaccessible(): a helper to warn on inaccessible paths
attr: warn on inaccessible attribute files
gitignore: report access errors of exclude files
config: warn on inaccessible files

Merge branch 'kk/maint-for-each-ref-multi-sort'Junio C Hamano Fri, 7 Sep 2012 18:08:50 +0000 (11:08 -0700)

Merge branch 'kk/maint-for-each-ref-multi-sort'

"git for-each-ref" did not currectly support more than one --sort
option.

* kk/maint-for-each-ref-multi-sort:
for-each-ref: Fix sort with multiple keys
t6300: test sort with multiple keys

Merge branch 'lt/commit-tree-guess-utf-8'Junio C Hamano Fri, 7 Sep 2012 18:08:38 +0000 (11:08 -0700)

Merge branch 'lt/commit-tree-guess-utf-8'

Teach "git commit" and "git commit-tree" the "we are told to use
utf-8 in log message, but this does not look like utf-8---attempt to
pass it through convert-from-latin1-to-utf8 and see if it makes
sense" heuristics "git mailinfo" already uses.

* lt/commit-tree-guess-utf-8:
commit/commit-tree: correct latin1 to utf-8

Merge branch 'pw/p4-use-client-spec-branch-detection'Junio C Hamano Fri, 7 Sep 2012 18:08:27 +0000 (11:08 -0700)

Merge branch 'pw/p4-use-client-spec-branch-detection'

Fix "git p4" when "--use-client-spec" and "--detect-branches" are
used together (the command used to misdetect branches).

* pw/p4-use-client-spec-branch-detection:
git p4: make branch detection work with --use-client-spec
git p4: do wildcard decoding in stripRepoPath
git p4: set self.branchPrefixes in initialization
git p4 test: add broken --use-client-spec --detect-branches tests
git p4 test: move client_view() function to library

Merge branch 'tr/maint-parseopt-avoid-empty'Junio C Hamano Fri, 7 Sep 2012 18:08:10 +0000 (11:08 -0700)

Merge branch 'tr/maint-parseopt-avoid-empty'

A workaround to avoid doing _(""), which translates to unwanted
magic string in the .po files.

* tr/maint-parseopt-avoid-empty:
gettext: do not translate empty string

Merge branch 'nd/i18n-poison-test-updates'Junio C Hamano Fri, 7 Sep 2012 18:07:59 +0000 (11:07 -0700)

Merge branch 'nd/i18n-poison-test-updates'

Update tests that can be broken with gettext-poison builds.

* nd/i18n-poison-test-updates:
Fix tests under GETTEXT_POISON on parseopt
Fix tests under GETTEXT_POISON on git-remote
Fix tests under GETTEXT_POISON on pack-object
Fix tests under GETTEXT_POISON on git-apply
Fix tests under GETTEXT_POISON on diffstat
Fix tests under GETTEXT_POISON on git-stash
Fix tests under GETTEXT_POISON on relative dates

Update mailmap for a handful of folksJunio C Hamano Mon, 3 Sep 2012 23:24:23 +0000 (16:24 -0700)

Update mailmap for a handful of folks

Signed-off-by: Junio C Hamano <gitster@pobox.com>

The third batch for 1.8.0Junio C Hamano Mon, 3 Sep 2012 23:23:44 +0000 (16:23 -0700)

The third batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/use-sc-open-max'Junio C Hamano Mon, 3 Sep 2012 22:54:41 +0000 (15:54 -0700)

Merge branch 'js/use-sc-open-max'

Introduce get_max_fd_limit() to absorb platforms that do not have
getrlimit(RLIMIT_NOFILE) and/or sysconf(_SC_OPEN_MAX).

* js/use-sc-open-max:
sha1_file.c: introduce get_max_fd_limit() helper

Merge branch 'js/compat-mkdir'Junio C Hamano Mon, 3 Sep 2012 22:54:37 +0000 (15:54 -0700)

Merge branch 'js/compat-mkdir'

Some mkdir(2) implementations do not want to see trailing slash in
its parameter.

* js/compat-mkdir:
compat: some mkdir() do not like a slash at the end

Merge branch 'js/no-curl-easy-strerror-on-old-curl'Junio C Hamano Mon, 3 Sep 2012 22:54:30 +0000 (15:54 -0700)

Merge branch 'js/no-curl-easy-strerror-on-old-curl'

Done to support compilation on __TANDEM, but is independently useful
for people with older version of libcURL.

* js/no-curl-easy-strerror-on-old-curl:
http.c: don't use curl_easy_strerror prior to curl-7.12.0

Merge branch 'jc/maint-mergetool-style-fix'Junio C Hamano Mon, 3 Sep 2012 22:54:25 +0000 (15:54 -0700)

Merge branch 'jc/maint-mergetool-style-fix'

* jc/maint-mergetool-style-fix:
mergetool: style fixes

Merge branch 'sz/submodule-force-update'Junio C Hamano Mon, 3 Sep 2012 22:54:17 +0000 (15:54 -0700)

Merge branch 'sz/submodule-force-update'

"git submodule update --force" used to leave the working tree of the
submodule intact when there were local changes. It is more intiutive
to make "--force" a sign to run "checkout -f" to overwrite them.

* sz/submodule-force-update:
Make 'git submodule update --force' always check out submodules.

Merge branch 'ph/stash-rerere'Junio C Hamano Mon, 3 Sep 2012 22:54:12 +0000 (15:54 -0700)

Merge branch 'ph/stash-rerere'

"git stash" internally used "git merge-recursive" backend, which did
not trigger "rerere" upon conflicts unlike other mergy operations.

* ph/stash-rerere:
stash: invoke rerere in case of conflict
test: git-stash conflict sets up rerere

Merge branch 'jc/daemon-access-hook'Junio C Hamano Mon, 3 Sep 2012 22:54:03 +0000 (15:54 -0700)

Merge branch 'jc/daemon-access-hook'

Allow an external command to tell git-daemon to decline service
based on the client address, repository path, etc.

* jc/daemon-access-hook:
daemon: --access-hook option

Merge branch 'jc/send-email-reconfirm'Junio C Hamano Mon, 3 Sep 2012 22:53:54 +0000 (15:53 -0700)

Merge branch 'jc/send-email-reconfirm'

Validate interactive input to "git send-email" to avoid common
mistakes such as saying "y<RETURN>" to sender mail address whose
prompt is given with a correctly guessed default.

* jc/send-email-reconfirm:
send-email: validate & reconfirm interactive responses

Merge branch 'cw/cherry-pick-allow-empty-message'Junio C Hamano Mon, 3 Sep 2012 22:53:37 +0000 (15:53 -0700)

Merge branch 'cw/cherry-pick-allow-empty-message'

"git cherry-pick" by default stops when it sees a commit without any
log message. The "--allow-empty-message" option can be used to
silently proceed.

* cw/cherry-pick-allow-empty-message:
cherry-pick: add --allow-empty-message option

Merge branch 'jc/maint-sane-execvp-notdir'Junio C Hamano Mon, 3 Sep 2012 22:53:26 +0000 (15:53 -0700)

Merge branch 'jc/maint-sane-execvp-notdir'

"git foo" errored out with "Not a directory" when the user had a non
directory on $PATH, and worse yet it masked an alias "foo" to run.

* jc/maint-sane-execvp-notdir:
sane_execvp(): ignore non-directory on $PATH

Merge branch 'jc/maint-config-exit-status'Junio C Hamano Mon, 3 Sep 2012 22:53:06 +0000 (15:53 -0700)

Merge branch 'jc/maint-config-exit-status'

The exit status code from "git config" was way overspecified while
being incorrect. Update the implementation to give the documented
status for a case that was documented, and introduce a new code for
"all other errors".

* jc/maint-config-exit-status:
config: "git config baa" should exit with status 1

Latter half of the second batch for 1.8.0Junio C Hamano Wed, 29 Aug 2012 22:00:30 +0000 (15:00 -0700)

Latter half of the second batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rr/precompose-utf8-cleanup'Junio C Hamano Wed, 29 Aug 2012 21:50:35 +0000 (14:50 -0700)

Merge branch 'rr/precompose-utf8-cleanup'

* rr/precompose-utf8-cleanup:
precompose-utf8: do not call checks for non-ascii "utf8"
cleanup precompose_utf8

Merge branch 'mh/maint-config-doc-proxy-command'Junio C Hamano Wed, 29 Aug 2012 21:50:30 +0000 (14:50 -0700)

Merge branch 'mh/maint-config-doc-proxy-command'

* mh/maint-config-doc-proxy-command:
git-config doc: unconfuse an example
git-config.txt: fix example

Merge branch 'ef/win32-cred-helper'Junio C Hamano Wed, 29 Aug 2012 21:50:24 +0000 (14:50 -0700)

Merge branch 'ef/win32-cred-helper'

Credential helper for Win32 to allow access to the keychain of
the logged-in user.

* ef/win32-cred-helper:
contrib: add win32 credential-helper

Merge branch 'hv/submodule-path-unmatch'Junio C Hamano Wed, 29 Aug 2012 21:50:15 +0000 (14:50 -0700)

Merge branch 'hv/submodule-path-unmatch'

* hv/submodule-path-unmatch:
Let submodule command exit with error status if path does not exist

Merge branch 'jc/capabilities'Junio C Hamano Wed, 29 Aug 2012 21:50:07 +0000 (14:50 -0700)

Merge branch 'jc/capabilities'

Some capabilities were asked by fetch-pack even when upload-pack did
not advertise that they are available. Fix fetch-pack not to do so.

* jc/capabilities:
fetch-pack: mention server version with verbose output
parse_feature_request: make it easier to see feature values
fetch-pack: do not ask for unadvertised capabilities
do not send client agent unless server does first
send-pack: fix capability-sending logic
include agent identifier in capability string

Merge branch 'mg/rebase-i-onto-reflog-in-full'Junio C Hamano Wed, 29 Aug 2012 21:50:01 +0000 (14:50 -0700)

Merge branch 'mg/rebase-i-onto-reflog-in-full'

The reflog entries left by "git rebase" and "git rebase -i" were
inconsistent.

* mg/rebase-i-onto-reflog-in-full:
rebase -i: use full onto sha1 in reflog

Merge branch 'mz/empty-rebase-test'Junio C Hamano Wed, 29 Aug 2012 21:49:57 +0000 (14:49 -0700)

Merge branch 'mz/empty-rebase-test'

* mz/empty-rebase-test:
add tests for 'git rebase --keep-empty'

Merge branch 'jc/maint-protect-sh-from-ifs'Junio C Hamano Wed, 29 Aug 2012 21:49:45 +0000 (14:49 -0700)

Merge branch 'jc/maint-protect-sh-from-ifs'

When the user exports a non-default IFS without HT, scripts that
rely on being able to parse "ls-files -s | while read a b c..."
start to fail. Protect them from such a misconfiguration.

* jc/maint-protect-sh-from-ifs:
sh-setup: protect from exported IFS

Merge branch 'bc/prune-info'Junio C Hamano Wed, 29 Aug 2012 21:49:39 +0000 (14:49 -0700)

Merge branch 'bc/prune-info'

Teach "git prune" without "-v" to be silent about leftover temporary
files.

* bc/prune-info:
prune.c: only print informational message in show_only or verbose mode

Merge branch 'mz/cherry-code-cleanup'Junio C Hamano Wed, 29 Aug 2012 21:49:29 +0000 (14:49 -0700)

Merge branch 'mz/cherry-code-cleanup'

Minor code clean-up on the cherry-pick codepath.

* mz/cherry-code-cleanup:
cherry: remove redundant check for merge commit
cherry: don't set ignored rev_info options
remove unnecessary parameter from get_patch_ids()

First half of the second batch for 1.8.0Junio C Hamano Mon, 27 Aug 2012 19:10:07 +0000 (12:10 -0700)

First half of the second batch for 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/docs-docbook-monospace-display'Junio C Hamano Mon, 27 Aug 2012 18:55:28 +0000 (11:55 -0700)

Merge branch 'jk/docs-docbook-monospace-display'

The documentation in the TeXinfo format was using indented output
for materials meant to be examples that are better typeset in
monospace.

* jk/docs-docbook-monospace-display:
docs: monospace listings in docbook output

Merge branch 'da/difftool-updates'Junio C Hamano Mon, 27 Aug 2012 18:55:16 +0000 (11:55 -0700)

Merge branch 'da/difftool-updates'

"git difftool --dir-diff" learned to use symbolic links to prepare
temporary copy of the working tree when available.

* da/difftool-updates:
difftool: silence warning
Add Code Compare v2.80.4 as a merge / diff tool for Windows
mergetool,difftool: Document --tool-help consistently
difftool: Disable --symlinks on cygwin
difftool: Handle compare() returning -1
difftool: Wrap long lines for readability
difftool: Check all return codes from compare()
difftool: Handle finding mergetools/ in a path with spaces
difftool: Use symlinks when diffing against the worktree
difftool: Call the temp directory "git-difftool"
difftool: Move option values into a hash
difftool: Eliminate global variables
difftool: Simplify print_tool_help()

Merge branch 'js/grep-patterntype-config'Junio C Hamano Mon, 27 Aug 2012 18:55:09 +0000 (11:55 -0700)

Merge branch 'js/grep-patterntype-config'

"grep" learned to use a non-standard pattern type by default if a
configuration variable tells it to.

* js/grep-patterntype-config:
grep: add a grep.patternType configuration setting

Merge branch 'bc/receive-pack-stdout-protection'Junio C Hamano Mon, 27 Aug 2012 18:55:00 +0000 (11:55 -0700)

Merge branch 'bc/receive-pack-stdout-protection'

When "git push" triggered the automatic gc on the receiving end, a
message from "git prune" that said it was removing cruft leaked to
the standard output, breaking the communication protocol.

* bc/receive-pack-stdout-protection:
receive-pack: do not leak output from auto-gc to standard output
t/t5400: demonstrate breakage caused by informational message from prune

Merge branch 'ab/diff-write-incomplete-line'Junio C Hamano Mon, 27 Aug 2012 18:54:46 +0000 (11:54 -0700)

Merge branch 'ab/diff-write-incomplete-line'

The output from "git diff -B" for a file that ends with an
incomplete line did not put "\ No newline..." on a line of its own.

* ab/diff-write-incomplete-line:
Fix '\ No newline...' annotation in rewrite diffs

Merge branch 'jc/maint-t7406-rev-parse-max-count-huh'Junio C Hamano Mon, 27 Aug 2012 18:54:36 +0000 (11:54 -0700)

Merge branch 'jc/maint-t7406-rev-parse-max-count-huh'

Test clean-up, with no behaviour change.

* jc/maint-t7406-rev-parse-max-count-huh:
t7406: fix misleading "rev-parse --max-count=1 HEAD"

Merge branch 'jk/maint-null-in-trees'Junio C Hamano Mon, 27 Aug 2012 18:54:28 +0000 (11:54 -0700)

Merge branch 'jk/maint-null-in-trees'

We do not want a link to 0{40} object stored anywhere in our objects.

* jk/maint-null-in-trees:
fsck: detect null sha1 in tree entries
do not write null sha1s to on-disk index
diff: do not use null sha1 as a sentinel value

Merge branch 'mm/push-default-switch-warning'Junio C Hamano Mon, 27 Aug 2012 18:54:04 +0000 (11:54 -0700)

Merge branch 'mm/push-default-switch-warning'

In the next major release, we will switch "git push [$there]" that
does not say what to push from the traditional "matching" to the
updated "simple" semantics, that pushes the current branch to the
branch with the same name only when the current branch is set to
integrate with that remote branch (all other cases will error out).

* mm/push-default-switch-warning:
push: start warning upcoming default change for push.default

branch -v: align even when branch names are in UTF-8Nguyễn Thái Ngọc Duy Sat, 25 Aug 2012 18:17:12 +0000 (01:17 +0700)

branch -v: align even when branch names are in UTF-8

Branch names are usually in ASCII so they are not the problem. The
problem most likely comes from "(no branch)" translation, which is
in UTF-8 and makes display-width calculation just wrong. Clarify
this by renaming the field "len" in struct ref_item to "width", as
it stores the display-width and is used to compute the width of the
screen needed to show the names of all the branches, and compute the
display width using utf8_strwidth(), not byte-length with strlen().

Update document to mention the fact that we may want ref names in
UTF-8. Encodings that produce invalid UTF-8 are safe as utf8_strwidth()
falls back to strlen(). The ones that incidentally produce valid UTF-8
sequences will cause misalignment.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: prompt for credentials on failed POSTJeff King Mon, 27 Aug 2012 13:27:15 +0000 (09:27 -0400)

http: prompt for credentials on failed POST

All of the smart-http GET requests go through the http_get_*
functions, which will prompt for credentials and retry if we
see an HTTP 401.

POST requests, however, do not go through any central point.
Moreover, it is difficult to retry in the general case; we
cannot assume the request body fits in memory or is even
seekable, and we don't know how much of it was consumed
during the attempt.

Most of the time, this is not a big deal; for both fetching
and pushing, we make a GET request before doing any POSTs,
so typically we figure out the credentials during the first
request, then reuse them during the POST. However, some
servers may allow a client to get the list of refs from
receive-pack without authentication, and then require
authentication when the client actually tries to POST the
pack.

This is not ideal, as the client may do a non-trivial amount
of work to generate the pack (e.g., delta-compressing
objects). However, for a long time it has been the
recommended example configuration in git-http-backend(1) for
setting up a repository with anonymous fetch and
authenticated push. This setup has always been broken
without putting a username into the URL. Prior to commit
986bbc0, it did work with a username in the URL, because git
would prompt for credentials before making any requests at
all. However, post-986bbc0, it is totally broken. Since it
has been advertised in the manpage for some time, we should
make sure it works.

Unfortunately, it is not as easy as simply calling post_rpc
again when it fails, due to the input issue mentioned above.
However, we can still make this specific case work by
retrying in two specific instances:

1. If the request is large (bigger than LARGE_PACKET_MAX),
we will first send a probe request with a single flush
packet. Since this request is static, we can freely
retry it.

2. If the request is small and we are not using gzip, then
we have the whole thing in-core, and we can freely
retry.

That means we will not retry in some instances, including:

1. If we are using gzip. However, we only do so when
calling git-upload-pack, so it does not apply to
pushes.

2. If we have a large request, the probe succeeds, but
then the real POST wants authentication. This is an
extremely unlikely configuration and not worth worrying
about.

While it might be nice to cover those instances, doing so
would be significantly more complex for very little
real-world gain. In the long run, we will be much better off
when curl learns to internally handle authentication as a
callback, and we can cleanly handle all cases that way.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: factor out http error code handlingJeff King Mon, 27 Aug 2012 13:26:04 +0000 (09:26 -0400)

http: factor out http error code handling

Most of our http requests go through the http_request()
interface, which does some nice post-processing on the
results. In particular, it handles prompting for missing
credentials as well as approving and rejecting valid or
invalid credentials. Unfortunately, it only handles GET
requests. Making it handle POSTs would be quite complex, so
let's pull result handling code into its own function so
that it can be reused from the POST code paths.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t: test http access to "half-auth" repositoriesJeff King Mon, 27 Aug 2012 13:25:53 +0000 (09:25 -0400)

t: test http access to "half-auth" repositories

Some sites set up http access to repositories such that
fetching is anonymous and unauthenticated, but pushing is
authenticated. While there are multiple ways to do this, the
technique advertised in the git-http-backend manpage is to
block access to locations matching "/git-receive-pack$".

Let's emulate that advice in our test setup, which makes it
clear that this advice does not actually work.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t: test basic smart-http authenticationJeff King Mon, 27 Aug 2012 13:25:36 +0000 (09:25 -0400)

t: test basic smart-http authentication

We do not currently test authentication over smart-http at
all. In theory, it should work exactly as it does for dumb
http (which we do test). It does indeed work for these
simple tests, but this patch lays the groundwork for more
complex tests in future patches.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/lib-httpd: recognize */smart/* repos as smart-httpJeff King Mon, 27 Aug 2012 13:25:21 +0000 (09:25 -0400)

t/lib-httpd: recognize */smart/* repos as smart-http

We do not currently test authentication for smart-http repos
at all. Part of the infrastructure to do this is recognizing
that auth/smart is indeed a smart-http repo.

The current apache config recognizes only "^/smart/*" as
smart-http. Let's instead treat anything with /smart/ in the
URL as smart-http. This is obviously a stupid thing to do
for a real production site, but for our test suite we know
that our repositories will not have this magic string in the
name.

Note that we will route /foo/smart/bar.git directly to
git-http-backend/bar.git; in other words, everything before
the "/smart/" is irrelevant to finding the repo on disk (but
may impact apache config, for example by triggering auth
checks).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/lib-httpd: only route auth/dumb to dumb reposJeff King Mon, 27 Aug 2012 13:24:42 +0000 (09:24 -0400)

t/lib-httpd: only route auth/dumb to dumb repos

Our test apache config points all of auth/ directly to the
on-disk repositories via an Alias directive. This works fine
because everything authenticated is currently in auth/dumb,
which is a subset. However, this would conflict with a
ScriptAlias for auth/smart (which will come in future
patches), so let's narrow the Alias.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5550: factor out http auth setupJeff King Mon, 27 Aug 2012 13:24:31 +0000 (09:24 -0400)

t5550: factor out http auth setup

The t5550 script sets up a nice askpass helper for
simulating user input and checking what git prompted for.
Let's make it available to other http scripts by migrating
it to lib-httpd.

We can use this immediately in t5540 to make our tests more
robust (previously, we did not check at all that hitting the
password-protected repo actually involved a password).
Unfortunately, we end up failing the test because the
current code erroneously prompts twice (once for
git-remote-http, and then again when the former spawns
git-http-push).

More importantly, though, it will let us easily add
smart-http authentication tests in t5541 and t5551; we
currently do not test smart-http authentication at all.

As part of making it generic, let's always look for and
store auxiliary askpass files at the top-level trash
directory; this makes it compatible with t5540, which runs
some tests from sub-repositories. We can abstract away the
ugliness with a short helper function.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5550: put auth-required repo in auth/dumbJeff King Mon, 27 Aug 2012 13:23:37 +0000 (09:23 -0400)

t5550: put auth-required repo in auth/dumb

In most of our tests, we put repos to be accessed by dumb
protocols in /dumb, and repos to be accessed by smart
protocols in /smart. In our test apache setup, the whole
/auth hierarchy requires authentication. However, we don't
bother to split it by smart and dumb here because we are not
currently testing smart-http authentication at all.

That will change in future patches, so let's be explicit
that we are interested in testing dumb access here. This
also happens to match what t5540 does for the push tests.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on parseoptJiang Xin Mon, 27 Aug 2012 05:36:55 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on parseopt

Use the i18n-specific test functions in test scripts for parseopt tests.
This issue was was introduced in v1.7.10.1-488-g54e6d:

54e6d i18n: parseopt: lookup help and argument translations when showing usage

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on git-remoteJiang Xin Mon, 27 Aug 2012 05:36:54 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on git-remote

Use the i18n-specific test functions in test scripts for git-remote.
This issue was was introduced in v1.7.10-233-gbb16d5:

bb16d5 i18n: remote: mark strings for translation

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on pack-objectJiang Xin Mon, 27 Aug 2012 05:36:53 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on pack-object

Use the i18n-specific test functions in test scripts for pack-object.
This issue was was introduced in v1.7.10.2-556-g46140:

46140 index-pack: use streaming interface for collision test on large blobs
cf2ba pack-objects: use streaming interface for reading large loose blobs

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on git-applyJiang Xin Mon, 27 Aug 2012 05:36:52 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on git-apply

Use the i18n-specific test functions in test scripts for git-apply.
This issue was was introduced in the following commits:

de373 i18n: apply: mark parseopt strings for translation
3638e i18n: apply: mark strings for translation

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on diffstatJiang Xin Mon, 27 Aug 2012 05:36:51 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on diffstat

Use the i18n-specific test functions in test scripts for diffstat.
This issue was was introduced in v1.7.9-1-g7f814:

7f814 Use correct grammar in diffstat summary line

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on git-stashJiang Xin Mon, 27 Aug 2012 05:36:50 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on git-stash

Use i18n-specific test functions in test scripts for git-stash.
This issue was was introduced in v1.7.4.1-119-g355ec:

355ec i18n: git-status basic messages

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix tests under GETTEXT_POISON on relative datesJiang Xin Mon, 27 Aug 2012 05:36:49 +0000 (13:36 +0800)

Fix tests under GETTEXT_POISON on relative dates

Use the i18n-specific test_i18ncmp in t/t0006-date.sh for relative dates
tests. This issue was was introduced in v1.7.10-230-g7d29a:

7d29a i18n: mark relative dates for translation

and been broken under GETTEXT_POISON=YesPlease since.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

doc: "git checkout -b/-B/--orphan" always takes a branc... Junio C Hamano Sun, 26 Aug 2012 18:40:08 +0000 (11:40 -0700)

doc: "git checkout -b/-B/--orphan" always takes a branch name

While the synopsis section makes it clear that the new branch name
is the parameter to these flags, the option description did not.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: compute patch->def_name correctly under -p0Junio C Hamano Sat, 25 Aug 2012 05:48:55 +0000 (22:48 -0700)

apply: compute patch->def_name correctly under -p0

Back when "git apply" was written, we made sure that the user can
skip more than the default number of path components (i.e. 1) by
giving "-p<n>", but the logic for doing so was built around the
notion of "we skip N slashes and stop". This obviously does not
work well when running under -p0 where we do not want to skip any,
but still want to skip SP/HT that separates the pathnames of
preimage and postimage and want to reject absolute pathnames.

Stop using "stop_at_slash()", and instead introduce a new helper
"skip_tree_prefix()" with similar logic but works correctly even for
the -p0 case.

This is an ancient bug, but has been masked for a long time because
most of the patches are text and have other clues to tell us the
name of the preimage and the postimage.

Noticed by Colin McCabe.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 24 Aug 2012 20:13:53 +0000 (13:13 -0700)

Merge branch 'maint'

* maint:
Prepare for 1.7.11.6
Make the ciabot scripts completely self-configuring in the normal case.
Improved documentation for the ciabot scripts.

Merge branch 'maint-1.7.11' into maintJunio C Hamano Fri, 24 Aug 2012 19:34:19 +0000 (12:34 -0700)

Merge branch 'maint-1.7.11' into maint

* maint-1.7.11:
Prepare for 1.7.11.6
Make the ciabot scripts completely self-configuring in the normal case.
Improved documentation for the ciabot scripts.
man: git pull -r is a short for --rebase
gitcli: describe abbreviation of long options
rev-list docs: clarify --topo-order description
Documentation/CodingGuidelines: spell out more shell guidelines
Documentation: do not mention .git/refs/* directories
tests: Introduce test_seq

Prepare for 1.7.11.6Junio C Hamano Fri, 24 Aug 2012 19:33:31 +0000 (12:33 -0700)

Prepare for 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'mv/pull-r-for-rebase' into maint-1.7.11Junio C Hamano Fri, 24 Aug 2012 19:05:47 +0000 (12:05 -0700)

Merge branch 'mv/pull-r-for-rebase' into maint-1.7.11

A minor documentation update.

* mv/pull-r-for-rebase:
man: git pull -r is a short for --rebase

Merge branch 'jc/maint-abbrev-option-cli' into maint... Junio C Hamano Fri, 24 Aug 2012 19:05:44 +0000 (12:05 -0700)

Merge branch 'jc/maint-abbrev-option-cli' into maint-1.7.11

We did not document that many commands take unique prefix
abbreviations of long options (e.g. "--option" may be the only flag
that the command accepts that begin with "--opt", in which case you
can give "--opt") anywhere easy to find for new people.

* jc/maint-abbrev-option-cli:
gitcli: describe abbreviation of long options

Merge branch 'jc/maint-rev-list-topo-doc' into maint... Junio C Hamano Fri, 24 Aug 2012 19:05:40 +0000 (12:05 -0700)

Merge branch 'jc/maint-rev-list-topo-doc' into maint-1.7.11

It was unclear what "--topo-order" was really about in the
documentation. It is not just about "children before parent", but
also about "don't mix lineages".

* jc/maint-rev-list-topo-doc:
rev-list docs: clarify --topo-order description

Merge branch 'hv/coding-guidelines' into maint-1.7.11Junio C Hamano Fri, 24 Aug 2012 19:05:35 +0000 (12:05 -0700)

Merge branch 'hv/coding-guidelines' into maint-1.7.11

In earlier days, "imitate the style in the neibouring code" was
sufficient to keep the coherent style, but over time some parts of
the codebase have drifted enough to make it ineffective.

* hv/coding-guidelines:
Documentation/CodingGuidelines: spell out more shell guidelines

Merge branch 'jc/tag-doc' into maint-1.7.11Junio C Hamano Fri, 24 Aug 2012 19:05:30 +0000 (12:05 -0700)

Merge branch 'jc/tag-doc' into maint-1.7.11

Our documentation used to assume having files in .git/refs/*
directories was the only to have branches and tags, but that is not
true for quite some time.

* jc/tag-doc:
Documentation: do not mention .git/refs/* directories

Merge branch 'mk/test-seq' into maint-1.7.11Junio C Hamano Fri, 24 Aug 2012 19:05:24 +0000 (12:05 -0700)

Merge branch 'mk/test-seq' into maint-1.7.11

Add a compatibility/utility function to the test framework.

* mk/test-seq:
tests: Introduce test_seq

Merge branch 'lp/no-cmd-http-fetch' into maint-1.7.11Junio C Hamano Fri, 24 Aug 2012 19:05:19 +0000 (12:05 -0700)

Merge branch 'lp/no-cmd-http-fetch' into maint-1.7.11

* lp/no-cmd-http-fetch:
builtin.h: remove unused cmd_<foo> declarations

Merge branch 'bw/maint-1.7.9-solaris-getpass' into... Junio C Hamano Fri, 24 Aug 2012 19:05:11 +0000 (12:05 -0700)

Merge branch 'bw/maint-1.7.9-solaris-getpass' into maint-1.7.11

* bw/maint-1.7.9-solaris-getpass:
Enable HAVE_DEV_TTY for Solaris
terminal: seek when switching between reading and writing

Merge branch 'jk/maint-commit-check-committer-early... Junio C Hamano Fri, 24 Aug 2012 19:05:08 +0000 (12:05 -0700)

Merge branch 'jk/maint-commit-check-committer-early' into maint-1.7.11

* jk/maint-commit-check-committer-early:
commit: check committer identity more strictly

compat: some mkdir() do not like a slash at the endJoachim Schmitz Fri, 24 Aug 2012 10:31:03 +0000 (12:31 +0200)

compat: some mkdir() do not like a slash at the end

Introduce a compatibility helper for platforms with such a mkdir().

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file.c: introduce get_max_fd_limit() helperJoachim Schmitz Fri, 24 Aug 2012 09:52:22 +0000 (11:52 +0200)

sha1_file.c: introduce get_max_fd_limit() helper

Not all platforms have getrlimit(), but there are other ways to see
the maximum number of files that a process can have open. If
getrlimit() is unavailable, fall back to sysconf(_SC_OPEN_MAX) if
available, and use OPEN_MAX from <limits.h>.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make 'git submodule update --force' always check out... Stefan Zager Wed, 25 Jul 2012 17:41:54 +0000 (10:41 -0700)

Make 'git submodule update --force' always check out submodules.

Currently, it will only do a checkout if the sha1 registered in the containing
repository doesn't match the HEAD of the submodule, regardless of whether the
submodule is dirty. As discussed on the mailing list, the '--force' flag is a
strong indicator that the state of the submodule is suspect, and should be reset
to HEAD.

Signed-off-by: Stefan Zager <szager@google.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mergetool: style fixesJunio C Hamano Thu, 23 Aug 2012 05:33:15 +0000 (22:33 -0700)

mergetool: style fixes

This script is one of the sizeable ones that tempted people to copy
its "neibouring style" in their new code, but was littered with
styles incompatible with our style guide.

- use one tab, not four spaces, per indent level;

- long lines can be wrapped after '|', '&&', or '||' for
readability.

- structures like "if .. then .. else .. fi", "while .. do .. done"
are split into lines in such a way that does not require
unnecessary semicolon.

- case, esac and case-arms align at the same column.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make the ciabot scripts completely self-configuring... Eric S. Raymond Thu, 23 Aug 2012 05:21:53 +0000 (01:21 -0400)

Make the ciabot scripts completely self-configuring in the normal case.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improved documentation for the ciabot scripts.Eric S. Raymond Thu, 23 Aug 2012 04:10:53 +0000 (00:10 -0400)

Improved documentation for the ciabot scripts.

Signed-off-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>