gitweb.git
resolve_gitlink_ref(): improve docstringMichael Haggerty Mon, 12 Dec 2011 05:38:18 +0000 (06:38 +0100)

resolve_gitlink_ref(): improve docstring

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

get_ref_dir(): change signatureMichael Haggerty Mon, 12 Dec 2011 05:38:17 +0000 (06:38 +0100)

get_ref_dir(): change signature

Change get_ref_dir() to take a (struct ref_cache *) in place of the
submodule name.

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

refs: change signatures of get_packed_refs() and get_lo... Michael Haggerty Mon, 12 Dec 2011 05:38:16 +0000 (06:38 +0100)

refs: change signatures of get_packed_refs() and get_loose_refs()

Change get_packed_refs() and get_loose_refs() to take a (struct
ref_cache *) instead of the name of the submodule.

Change get_ref_dir() to take a submodule name (i.e., "" for the main
module) rather than a submodule pointer (i.e., NULL for the main
module) so that refs->name can be used as its argument. (In a moment
this function will also be changed to take a (struct ref_cache *),
too.)

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

is_dup_ref(): extract function from sort_ref_array()Michael Haggerty Mon, 12 Dec 2011 05:38:15 +0000 (06:38 +0100)

is_dup_ref(): extract function from sort_ref_array()

Giving the function a name makes the code easier to understand.

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

add_ref(): add docstringMichael Haggerty Mon, 12 Dec 2011 05:38:14 +0000 (06:38 +0100)

add_ref(): add docstring

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

parse_ref_line(): add docstringMichael Haggerty Mon, 12 Dec 2011 05:38:13 +0000 (06:38 +0100)

parse_ref_line(): add docstring

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

is_refname_available(): remove the "quiet" argumentMichael Haggerty Mon, 12 Dec 2011 05:38:12 +0000 (06:38 +0100)

is_refname_available(): remove the "quiet" argument

quiet was always set to 0, so get rid of it. Add a function docstring
for good measure.

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

clear_ref_array(): rename from free_ref_array()Michael Haggerty Mon, 12 Dec 2011 05:38:11 +0000 (06:38 +0100)

clear_ref_array(): rename from free_ref_array()

Rename the function since it doesn't actually free the array object
that is passed to it.

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

refs: rename parameters result -> sha1Michael Haggerty Mon, 12 Dec 2011 05:38:10 +0000 (06:38 +0100)

refs: rename parameters result -> sha1

Try consistently to use the name "sha1" for parameters to which a SHA1
will be stored.

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

refs: rename "refname" variablesMichael Haggerty Mon, 12 Dec 2011 05:38:09 +0000 (06:38 +0100)

refs: rename "refname" variables

Try to consistently use the variable name "refname" when referring to
a string that names a reference.

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

struct ref_entry: document name memberMichael Haggerty Mon, 12 Dec 2011 05:38:08 +0000 (06:38 +0100)

struct ref_entry: document name member

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

Update draft release notes for 1.7.9Junio C Hamano Fri, 9 Dec 2011 21:52:36 +0000 (13:52 -0800)

Update draft release notes for 1.7.9

The first two of more important topics slated for 1.7.9 have been merged.

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

Merge branch 'sg/complete-refs'Junio C Hamano Fri, 9 Dec 2011 21:37:18 +0000 (13:37 -0800)

Merge branch 'sg/complete-refs'

* sg/complete-refs:
completion: remove broken dead code from __git_heads() and __git_tags()
completion: fast initial completion for config 'remote.*.fetch' value
completion: improve ls-remote output filtering in __git_refs_remotes()
completion: query only refs/heads/ in __git_refs_remotes()
completion: support full refs from remote repositories
completion: improve ls-remote output filtering in __git_refs()
completion: make refs completion consistent for local and remote repos
completion: optimize refs completion
completion: document __gitcomp()

Conflicts:
contrib/completion/git-completion.bash

Merge branch 'nd/resolve-ref'Junio C Hamano Fri, 9 Dec 2011 21:37:14 +0000 (13:37 -0800)

Merge branch 'nd/resolve-ref'

* nd/resolve-ref:
Copy resolve_ref() return value for longer use
Convert many resolve_ref() calls to read_ref*() and ref_exists()

Conflicts:
builtin/fmt-merge-msg.c
builtin/merge.c
refs.c

Merge branch 'jc/pull-signed-tag'Junio C Hamano Fri, 9 Dec 2011 21:37:09 +0000 (13:37 -0800)

Merge branch 'jc/pull-signed-tag'

* jc/pull-signed-tag:
commit-tree: teach -m/-F options to read logs from elsewhere
commit-tree: update the command line parsing
commit: teach --amend to carry forward extra headers
merge: force edit and no-ff mode when merging a tag object
commit: copy merged signed tags to headers of merge commit
merge: record tag objects without peeling in MERGE_HEAD
merge: make usage of commit->util more extensible
fmt-merge-msg: Add contents of merged tag in the merge message
fmt-merge-msg: package options into a structure
fmt-merge-msg: avoid early returns
refs DWIMmery: use the same rule for both "git fetch" and others
fetch: allow "git fetch $there v1.0" to fetch a tag
merge: notice local merging of tags and keep it unwrapped
fetch: do not store peeled tag object names in FETCH_HEAD
Split GPG interface into its own helper library

Conflicts:
builtin/fmt-merge-msg.c
builtin/merge.c

Merge branch 'jc/request-pull-show-head-4'Junio C Hamano Fri, 9 Dec 2011 21:37:05 +0000 (13:37 -0800)

Merge branch 'jc/request-pull-show-head-4'

* jc/request-pull-show-head-4:
request-pull: use the annotated tag contents
fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error
environment.c: Fix an sparse "symbol not declared" warning
builtin/log.c: Fix an "Using plain integer as NULL pointer" warning
fmt-merge-msg: use branch.$name.description
request-pull: use the branch description
request-pull: state what commit to expect
request-pull: modernize style
branch: teach --edit-description option
format-patch: use branch description in cover letter
branch: add read_branch_desc() helper function

Conflicts:
builtin/branch.c

Merge branch 'ab/pull-rebase-config'Junio C Hamano Fri, 9 Dec 2011 21:37:01 +0000 (13:37 -0800)

Merge branch 'ab/pull-rebase-config'

* ab/pull-rebase-config:
pull: introduce a pull.rebase option to enable --rebase

Merge branch 'rs/allocate-cache-entry-individually'Junio C Hamano Fri, 9 Dec 2011 21:36:56 +0000 (13:36 -0800)

Merge branch 'rs/allocate-cache-entry-individually'

* rs/allocate-cache-entry-individually:
cache.h: put single NUL at end of struct cache_entry
read-cache.c: allocate index entries individually

Conflicts:
read-cache.c

Merge branch 'maint'Junio C Hamano Fri, 9 Dec 2011 21:34:18 +0000 (13:34 -0800)

Merge branch 'maint'

* maint:
am: don't persist keepcr flag
mingw: give waitpid the correct signature
git symbolic-ref: documentation fix

Merge branch 'maint-1.7.7' into maintJunio C Hamano Fri, 9 Dec 2011 21:33:39 +0000 (13:33 -0800)

Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
am: don't persist keepcr flag
mingw: give waitpid the correct signature
git symbolic-ref: documentation fix

am: don't persist keepcr flagMartin von Zweigbergk Fri, 9 Dec 2011 07:30:45 +0000 (23:30 -0800)

am: don't persist keepcr flag

The keepcr flag is only used in the split_patches function, which is
only called before a patch application has to stopped for user input,
not after resuming. It is therefore unnecessary to persist the
flag. This seems to have been the case since it was introduced in
ad2c928 (git-am: Add command line parameter `--keep-cr` passing it to
git-mailsplit, 2010-02-27).

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mingw: give waitpid the correct signatureErik Faye-Lund Thu, 8 Dec 2011 19:39:57 +0000 (20:39 +0100)

mingw: give waitpid the correct signature

POSIX says that last parameter to waitpid should be 'int',
so let's make it so.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git symbolic-ref: documentation fixMichael Haggerty Wed, 7 Dec 2011 15:20:16 +0000 (16:20 +0100)

git symbolic-ref: documentation fix

The old "git symbolic-ref" manpage seemed to imply in one place that
symlinks are still the default way to represent symbolic references
and in another that symlinks are deprecated. Fix the text and shorten
the justification for the change of implementation.

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

Merge branch 'master' of git://bogomips.org/git-svnJunio C Hamano Tue, 6 Dec 2011 05:02:51 +0000 (21:02 -0800)

Merge branch 'master' of git://bogomips.org/git-svn

* 'master' of git://bogomips.org/git-svn:
git-svn.perl: close the edit for propedits even with no mods

Copy resolve_ref() return value for longer useNguyễn Thái Ngọc Duy Sun, 13 Nov 2011 10:22:15 +0000 (17:22 +0700)

Copy resolve_ref() return value for longer use

resolve_ref() may return a pointer to a static buffer. Callers that
use this value longer than a couple of statements should copy the
value to avoid some hidden resolve_ref() call that may change the
static buffer's value.

The bug found by Tony Wang <wwwjfy@gmail.com> in builtin/merge.c
demonstrates this. The first call is in cmd_merge()

branch = resolve_ref("HEAD", head_sha1, 0, &flag);

Then deep in lookup_commit_or_die() a few lines after, resolve_ref()
may be called again and destroy "branch".

lookup_commit_or_die
lookup_commit_reference
lookup_commit_reference_gently
parse_object
lookup_replace_object
do_lookup_replace_object
prepare_replace_object
for_each_replace_ref
do_for_each_ref
get_loose_refs
get_ref_dir
get_ref_dir
resolve_ref

All call sites are checked and made sure that xstrdup() is called if
the value should be saved.

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

Kick-off the 1.7.9 cycleJunio C Hamano Mon, 5 Dec 2011 23:49:34 +0000 (15:49 -0800)

Kick-off the 1.7.9 cycle

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

Merge branch 'jk/refresh-porcelain-output'Junio C Hamano Mon, 5 Dec 2011 23:30:47 +0000 (15:30 -0800)

Merge branch 'jk/refresh-porcelain-output'

* jk/refresh-porcelain-output:
refresh_index: make porcelain output more specific
refresh_index: rename format variables
read-cache: let refresh_cache_ent pass up changed flags

Merge branch 'gh/userdiff-matlab'Junio C Hamano Mon, 5 Dec 2011 23:26:21 +0000 (15:26 -0800)

Merge branch 'gh/userdiff-matlab'

* gh/userdiff-matlab:
Add built-in diff patterns for MATLAB code

Merge branch 'nd/maint-ignore-exclude'Junio C Hamano Mon, 5 Dec 2011 23:25:12 +0000 (15:25 -0800)

Merge branch 'nd/maint-ignore-exclude'

* nd/maint-ignore-exclude:
checkout,merge: loosen overwriting untracked file check based on info/exclude

Merge branch 'vr/git-merge-default-to-upstream'Junio C Hamano Mon, 5 Dec 2011 23:24:12 +0000 (15:24 -0800)

Merge branch 'vr/git-merge-default-to-upstream'

* vr/git-merge-default-to-upstream:
Show error for 'git merge' with unset merge.defaultToUpstream

Merge branch 'jc/maint-pack-object-cycle'Junio C Hamano Mon, 5 Dec 2011 23:19:34 +0000 (15:19 -0800)

Merge branch 'jc/maint-pack-object-cycle'

* jc/maint-pack-object-cycle:
pack-object: tolerate broken packs that have duplicated objects

Conflicts:
builtin/pack-objects.c

Merge branch 'jc/index-pack-reject-dups'Junio C Hamano Mon, 5 Dec 2011 23:13:42 +0000 (15:13 -0800)

Merge branch 'jc/index-pack-reject-dups'

* jc/index-pack-reject-dups:
receive-pack, fetch-pack: reject bogus pack that records objects twice

Merge branch 'vr/msvc'Junio C Hamano Mon, 5 Dec 2011 23:12:54 +0000 (15:12 -0800)

Merge branch 'vr/msvc'

* vr/msvc:
MSVC: Remove unneeded header stubs
Compile fix for MSVC: Include <io.h>
Compile fix for MSVC: Do not include sys/resources.h

Merge branch 'na/strtoimax'Junio C Hamano Mon, 5 Dec 2011 23:12:49 +0000 (15:12 -0800)

Merge branch 'na/strtoimax'

* na/strtoimax:
Support sizes >=2G in various config options accepting 'g' sizes.
Compatibility: declare strtoimax() under NO_STRTOUMAX
Add strtoimax() compatibility function.

Merge branch 'ab/clang-lints'Junio C Hamano Mon, 5 Dec 2011 23:12:34 +0000 (15:12 -0800)

Merge branch 'ab/clang-lints'

* ab/clang-lints:
cast variable in call to free() in builtin/diff.c and submodule.c
apply: get rid of useless x < 0 comparison on a size_t type

Merge branch 'nd/prune-progress'Junio C Hamano Mon, 5 Dec 2011 23:11:11 +0000 (15:11 -0800)

Merge branch 'nd/prune-progress'

* nd/prune-progress:
reachable: per-object progress
prune: handle --progress/no-progress
prune: show progress while marking reachable objects

Merge branch 'nd/fsck-progress'Junio C Hamano Mon, 5 Dec 2011 23:11:07 +0000 (15:11 -0800)

Merge branch 'nd/fsck-progress'

* nd/fsck-progress:
fsck: print progress
fsck: avoid reading every object twice
verify_packfile(): check as many object as possible in a pack
fsck: return error code when verify_pack() goes wrong

Merge branch 'mf/curl-select-fdset'Junio C Hamano Mon, 5 Dec 2011 23:10:28 +0000 (15:10 -0800)

Merge branch 'mf/curl-select-fdset'

* mf/curl-select-fdset:
http: drop "local" member from request struct
http.c: Rely on select instead of tracking whether data was received
http.c: Use timeout suggested by curl instead of fixed 50ms timeout
http.c: Use curl_multi_fdset to select on curl fds instead of just sleeping

Merge branch 'nd/misc-cleanups'Junio C Hamano Mon, 5 Dec 2011 23:10:20 +0000 (15:10 -0800)

Merge branch 'nd/misc-cleanups'

* nd/misc-cleanups:
unpack_object_header_buffer(): clear the size field upon error
tree_entry_interesting: make use of local pointer "item"
tree_entry_interesting(): give meaningful names to return values
read_directory_recursive: reduce one indentation level
get_tree_entry(): do not call find_tree_entry() on an empty tree
tree-walk.c: do not leak internal structure in tree_entry_len()

Merge branch 'maint'Junio C Hamano Mon, 5 Dec 2011 23:08:20 +0000 (15:08 -0800)

Merge branch 'maint'

* maint:
stripspace: fix outdated comment
Add MYMETA.yml to perl/.gitignore

Merge branch 'maint-1.7.7' into maintJunio C Hamano Mon, 5 Dec 2011 23:07:54 +0000 (15:07 -0800)

Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
stripspace: fix outdated comment
Add MYMETA.yml to perl/.gitignore

Merge branch 'maint-1.7.6' into maint-1.7.7Junio C Hamano Mon, 5 Dec 2011 23:07:49 +0000 (15:07 -0800)

Merge branch 'maint-1.7.6' into maint-1.7.7

* maint-1.7.6:
stripspace: fix outdated comment
Add MYMETA.yml to perl/.gitignore

stripspace: fix outdated commentJeff King Mon, 5 Dec 2011 22:29:15 +0000 (17:29 -0500)

stripspace: fix outdated comment

The comment on top of stripspace() claims that the buffer
will no longer be NUL-terminated. However, this has not been
the case at least since the move to using strbuf in 2007.

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

git-p4: introduce skipSubmitEditPete Wyckoff Mon, 5 Dec 2011 00:22:45 +0000 (19:22 -0500)

git-p4: introduce skipSubmitEdit

Add a configuration variable to skip invoking the editor in the
submit path.

The existing variable skipSubmitEditCheck continues to make sure
that the submit template was indeed modified by the editor; but,
it is not considered if skipSubmitEdit is true.

Reported-by: Loren A. Linden Levy <lindenle@gmail.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add MYMETA.yml to perl/.gitignoreSebastian Morr Fri, 2 Dec 2011 22:55:28 +0000 (23:55 +0100)

Add MYMETA.yml to perl/.gitignore

This file is auto-generated by newer versions of ExtUtils::MakeMaker
(presumably starting with the version shipping with Perl 5.14). It just
contains extra information about the environment and arguments to the
Makefile-building process, and should be ignored.

Signed-off-by: Sebastian Morr <sebastian@morr.cc>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/merge-edit-option'Junio C Hamano Mon, 5 Dec 2011 19:15:52 +0000 (11:15 -0800)

Merge branch 'js/merge-edit-option'

* js/merge-edit-option:
Documentation: fix formatting error in merge-options.txt

Documentation: fix formatting error in merge-options.txtJack Nagel Mon, 5 Dec 2011 07:53:27 +0000 (01:53 -0600)

Documentation: fix formatting error in merge-options.txt

The first paragraph inside of a list item does not need a preceding line
consisting of a single '+', and in fact this causes the text to be
misrendered. Fix it.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.8 v1.7.8Junio C Hamano Fri, 2 Dec 2011 17:31:32 +0000 (09:31 -0800)

Git 1.7.8

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

git-svn.perl: close the edit for propedits even with... Steven Walter Thu, 1 Dec 2011 02:37:27 +0000 (21:37 -0500)

git-svn.perl: close the edit for propedits even with no mods

It's legitimate to update the mergeinfo property without
actually changing any files. This can happen when changes are
backported to a branch, and then that branch is merged back
into mainline. We still want to record the updated mergeinfo
for book-keeping.

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

Git 1.7.8-rc4 v1.7.8-rc4Junio C Hamano Mon, 28 Nov 2011 22:07:13 +0000 (14:07 -0800)

Git 1.7.8-rc4

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

checkout,merge: loosen overwriting untracked file check... Nguyễn Thái Ngọc Duy Sun, 27 Nov 2011 10:15:32 +0000 (17:15 +0700)

checkout,merge: loosen overwriting untracked file check based on info/exclude

Back in 1127148 (Loosen "working file will be lost" check in
Porcelain-ish - 2006-12-04), git-checkout.sh learned to quietly
overwrite ignored files. Howver the code only took .gitignore files
into account.

Standard ignored files include all specified in .gitignore files in
working directory _and_ $GIT_DIR/info/exclude. This patch makes sure
ignored files in info/exclude can also be overwritten automatically in
the spirit of the original patch.

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

builtin-reset: Documentation updateVincent van Ravesteijn Wed, 23 Nov 2011 06:44:16 +0000 (07:44 +0100)

builtin-reset: Documentation update

The second mode of 'git reset' is defined by the --patch
option, while the third mode is defined by the <mode> option.
Hence, these options are mandatory in the description of the
individual modes.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-branch: Fix crash on invalid use of --forceVincent van Ravesteijn Wed, 23 Nov 2011 06:31:55 +0000 (07:31 +0100)

builtin-branch: Fix crash on invalid use of --force

The option --force should not put us in 'create branch' mode. The
fact that this option is only valid in 'create branch' mode is
already caught by the the next 'if' in which we assure that we
are in the correct mode.

Without this patch, "git branch -f" without any other argument ends
up calling create_branch without any branch name.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert --abort: do not leave behind useless sequencer... Jonathan Nieder Wed, 23 Nov 2011 10:04:52 +0000 (04:04 -0600)

revert --abort: do not leave behind useless sequencer-old directory

The "git cherry-pick --abort" command currently renames the
.git/sequencer directory to .git/sequencer-old instead of removing it
on success due to an accident. cherry-pick --abort is designed to
work in three steps:

1) find which commit to roll back to
2) call "git reset --merge <commit>" to move to that commit
3) remove the .git/sequencer directory

But the careless author forgot step 3 entirely. The only reason the
command worked anyway is that "git reset --merge <commit>" renames the
.git/sequencer directory as a secondary effect --- after moving to
<commit>, or so the logic goes, it is unlikely but possible that the
caller of git reset wants to continue the series of cherry-picks that
was in progress, so git renames the sequencer state to
.git/sequencer-old to be helpful while allowing the cherry-pick to be
resumed if the caller did not want to end the sequence after all.

By running "git cherry-pick --abort", the operator has clearly
indicated that she is not planning to continue cherry-picking. Remove
the (renamed) .git/sequencer directory as intended all along.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix revert --abort on WindowsJohannes Sixt Wed, 23 Nov 2011 08:49:38 +0000 (09:49 +0100)

Fix revert --abort on Windows

On Windows, it is not possible to rename or remove a directory that has
open files. 'revert --abort' renamed .git/sequencer when it still had
.git/sequencer/head open. Close the file as early as possible to allow
the rename operation on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: do not pass non-literal string as format to... Nguyễn Thái Ngọc Duy Wed, 23 Nov 2011 12:45:36 +0000 (19:45 +0700)

revert: do not pass non-literal string as format to git_path()

This fixes the following warning.

CC builtin/revert.o
builtin/revert.c: In function ‘write_cherry_pick_head’:
builtin/revert.c:311: warning: format not a string literal and no format arguments

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

Update 1.7.8 draft release notes in preparation for rc4Junio C Hamano Wed, 23 Nov 2011 02:23:36 +0000 (18:23 -0800)

Update 1.7.8 draft release notes in preparation for rc4

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

Merge branch 'jn/revert-quit'Junio C Hamano Wed, 23 Nov 2011 02:22:08 +0000 (18:22 -0800)

Merge branch 'jn/revert-quit'

* jn/revert-quit:
revert: remove --reset compatibility option
revert: introduce --abort to cancel a failed cherry-pick
revert: write REVERT_HEAD pseudoref during conflicted revert
revert: improve error message for cherry-pick during cherry-pick
revert: rearrange pick_revisions() for clarity
revert: rename --reset option to --quit

revert: remove --reset compatibility optionJonathan Nieder Tue, 22 Nov 2011 11:20:46 +0000 (05:20 -0600)

revert: remove --reset compatibility option

Remove the "git cherry-pick --reset" option, which has a different
preferred spelling nowadays ("--quit"). Luckily the old --reset name
was not around long enough for anyone to get used to it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: introduce --abort to cancel a failed cherry... Jonathan Nieder Wed, 23 Nov 2011 01:27:21 +0000 (19:27 -0600)

revert: introduce --abort to cancel a failed cherry-pick

After running some ill-advised command like "git cherry-pick
HEAD..linux-next", the bewildered novice may want to return to more
familiar territory. Introduce a "git cherry-pick --abort" command
that rolls back the entire cherry-pick sequence and places the
repository back on solid ground.

Just like "git merge --abort", this internally uses "git reset
--merge", so local changes not involved in the conflict resolution are
preserved.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: write REVERT_HEAD pseudoref during conflicted... Jonathan Nieder Tue, 22 Nov 2011 11:17:36 +0000 (05:17 -0600)

revert: write REVERT_HEAD pseudoref during conflicted revert

When conflicts are encountered while reverting a commit, it can be
handy to have the name of that commit easily available. For example,
to produce a copy of the patch to refer to while resolving conflicts:

$ git revert 2eceb2a8
error: could not revert 2eceb2a8... awesome, buggy feature
$ git show -R REVERT_HEAD >the-patch
$ edit $(git diff --name-only)

Set a REVERT_HEAD pseudoref when "git revert" does not make a commit,
for cases like this. This also makes it possible for scripts to
distinguish between a revert that encountered conflicts and other
sources of an unmerged index.

After successfully committing, resetting with "git reset", or moving
to another commit with "git checkout" or "git reset", the pseudoref is
no longer useful, so remove it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: improve error message for cherry-pick during... Jonathan Nieder Tue, 22 Nov 2011 11:15:47 +0000 (05:15 -0600)

revert: improve error message for cherry-pick during cherry-pick

In the spirit of v1.6.3.3~3^2 (refuse to merge during a merge,
2009-07-01), "git cherry-pick" refuses to start a new cherry-pick when
in the middle of an existing conflicted cherry-pick in the following
sequence:

1. git cherry-pick HEAD..origin
2. resolve conflicts
3. git cherry-pick HEAD..origin (instead of "git cherry-pick
--continue", by mistake)

Good. However, the error message on attempting step 3 is more
convoluted than necessary:

$ git cherry-pick HEAD..origin
error: .git/sequencer already exists.
error: A cherry-pick or revert is in progress.
hint: Use --continue to continue the operation
hint: or --quit to forget about it
fatal: cherry-pick failed

Clarify by removing the redundant first "error:" message, simplifying
the advice, and using lower-case and no full stops to be consistent
with other commands that prefix their messages with "error:", so it
becomes

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit)"
fatal: cherry-pick failed

The "fatal: cherry-pick failed" line seems unnecessary, too, but
that can be fixed some other day.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: rearrange pick_revisions() for clarityJonathan Nieder Tue, 22 Nov 2011 11:15:10 +0000 (05:15 -0600)

revert: rearrange pick_revisions() for clarity

Deal completely with "cherry-pick --quit" and --continue at the
beginning of pick_revisions(), leaving the rest of the function for
the more interesting "git cherry-pick <commits>" case.

No functional change intended. The impact is just to unindent the
code a little.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: rename --reset option to --quitJonathan Nieder Tue, 22 Nov 2011 11:14:29 +0000 (05:14 -0600)

revert: rename --reset option to --quit

The option to "git cherry-pick" and "git revert" to discard the
sequencer state introduced by v1.7.8-rc0~141^2~6 (revert: Introduce
--reset to remove sequencer state, 2011-08-04) has a confusing name.
Change it now, while we still have the time.

The new name for "cherry-pick, please get out of my way, since I've
long forgotten about the sequence of commits I was cherry-picking when
you wrote that old .git/sequencer directory" is --quit. Mnemonic:
this is analagous to quiting a program the user is no longer using ---
we just want to get out of the multiple-command cherry-pick procedure
and not to reset HEAD or rewind any other old state.

The "--reset" option is kept as a synonym to minimize the impact. We
might consider dropping it for simplicity in a separate patch, though.

Adjust documentation and tests to use the newly preferred name (--quit)
instead of --reset. While at it, let's clarify the short descriptions
of these operations in "-h" output.

Before:

--reset forget the current operation
--continue continue the current operation

After:

--quit end revert or cherry-pick sequence
--continue resume revert or cherry-pick sequence

Noticed-by: Phil Hord <phil.hord@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 21 Nov 2011 22:30:45 +0000 (14:30 -0800)

Merge branch 'maint'

* maint:
documentation fix: git difftool uses diff tools, not merge tools.

Merge branch 'rr/misc-fixes'Junio C Hamano Mon, 21 Nov 2011 19:03:20 +0000 (11:03 -0800)

Merge branch 'rr/misc-fixes'

* rr/misc-fixes:
convert.c: Fix return type of git_path_check_eol()

convert.c: Fix return type of git_path_check_eol()Ramsay Jones Mon, 21 Nov 2011 18:42:09 +0000 (18:42 +0000)

convert.c: Fix return type of git_path_check_eol()

The git_path_check_eol() function converts a string value to the
corresponding 'enum eol' value. However, the function is currently
declared to return an 'enum crlf_action', which causes sparse to
complain thus:

SP convert.c
convert.c:736:50: warning: mixing different enum types
convert.c:736:50: int enum crlf_action versus
convert.c:736:50: int enum eol

In order to suppress the warning, we simply correct the return type
in the function declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Show error for 'git merge' with unset merge.defaultToUp... Vincent van Ravesteijn Mon, 21 Nov 2011 13:30:40 +0000 (14:30 +0100)

Show error for 'git merge' with unset merge.defaultToUpstream

'git merge' can be called without any arguments if merge.defaultToUpstream
is set. However, when merge.defaultToUpstream is not set, the user will be
presented the usage information as if he entered a command with a wrong
syntaxis. Ironically, the usage information confirms that no arguments are
mandatory.

This adds a proper error message telling the user why the command failed. As
a side-effect this can help the user in discovering the possibility to merge
with the upstream branch by setting merge.defaultToUpstream.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

documentation fix: git difftool uses diff tools, not... Thomas Hochstein Mon, 14 Nov 2011 22:55:52 +0000 (23:55 +0100)

documentation fix: git difftool uses diff tools, not merge tools.

Let the documentation for -t list valid *diff* tools,
not valid *merge* tools.

Signed-off-by: Thomas Hochstein <thh@inter.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.c: Fix a static buffer overwrite bug by avoiding... Ramsay Jones Sat, 19 Nov 2011 19:42:00 +0000 (19:42 +0000)

config.c: Fix a static buffer overwrite bug by avoiding mkpath()

On cygwin, test number 21 of t3200-branch.sh (git branch -m q q2
without config should succeed) fails. The failure involves the
functions from path.c which parcel out internal static buffers
from the git_path() and mkpath() functions.

In particular, the rename_ref() function calls safe_create_leading\
_directories() with a filename returned by git_path("logs/%s", ref).
safe_create_leading_directories(), in turn, calls stat() on each
element of the path it is given. On cygwin, this leads to a call
to git_config() for each component of the path, since this test
explicitly removes the config file. git_config() calls mkpath(), so
on the fourth component of the path, the original buffer passed
into the function is overwritten with the config filename.

Note that this bug is specific to cygwin and it's schizophrenic
stat() functions (see commits adbc0b6, 7faee6b and 7974843). The
lack of a config file and a path with at least four elements is
also important to trigger the bug.

In order to fix the problem, we replace the call to mkpath() with
a call to mksnpath() and provide our own buffer.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5501-*.sh: Fix url passed to clone in setup testRamsay Jones Sat, 19 Nov 2011 19:38:54 +0000 (19:38 +0000)

t5501-*.sh: Fix url passed to clone in setup test

In particular, the url passed to git-clone has an extra '/' given
after the 'file://' schema prefix, thus:

git clone --reference=original "file:///$(pwd)/original one

Once the prefix is removed, the remainder of the url looks something
like "//home/ramsay/git/t/...", which is then interpreted as an
network path. This then results in a "Permission denied" error, like
so:

ramsay $ ls //home
ls: cannot access //home: No such host or network path
ramsay $ ls //home/ramsay
ls: cannot access //home/ramsay: Permission denied
ramsay $

In order to fix the problem, we simply remove the extraneous '/'
character from the url.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Hopefully final update of release notes before 1.7... Junio C Hamano Fri, 18 Nov 2011 22:19:45 +0000 (14:19 -0800)

Hopefully final update of release notes before 1.7.8 final

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

Merge branch 'rr/misc-fixes'Junio C Hamano Fri, 18 Nov 2011 22:13:48 +0000 (14:13 -0800)

Merge branch 'rr/misc-fixes'

* rr/misc-fixes:
git-compat-util: don't assume value for undefined variable
sha1_file: don't mix enum with int
convert: don't mix enum with int
http: remove unused function hex()

refresh_index: make porcelain output more specificJeff King Fri, 18 Nov 2011 11:13:08 +0000 (06:13 -0500)

refresh_index: make porcelain output more specific

If you have a deleted file and a porcelain refreshes the
cache, we print:

Unstaged changes after reset:
M file

This is technically correct, in that the file is modified,
but it's friendlier to the user if we further differentiate
the case of a deleted file (especially because this output
looks a lot like "diff --name-status", which would also make
the distinction).

Similarly, we can distinguish typechanges ("T") and
intent-to-add files ("A"), both of which appear as just "M"
in the current output.

The plumbing output for all cases remains "needs update" for
historical compatibility.

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

refresh_index: rename format variablesJeff King Fri, 18 Nov 2011 11:11:28 +0000 (06:11 -0500)

refresh_index: rename format variables

When refreshing the index, for modified (or unmerged) files we will print
"needs update" (or "needs merge") for plumbing, or line similar to the
output from "diff --name-status" for porcelain.

The variables holding which type of message to show are named after the
plumbing messages. However, as we begin to differentiate more cases at the
porcelain level (with the plumbing message staying the same), that naming
scheme will become awkward.

Instead, name the variables after which case we found (modified or
unmerged), not what we will output.

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

read-cache: let refresh_cache_ent pass up changed flagsJeff King Fri, 18 Nov 2011 11:11:08 +0000 (06:11 -0500)

read-cache: let refresh_cache_ent pass up changed flags

This will enable refresh_cache to differentiate more cases
of modification (such as typechange) when telling the user
what isn't fresh.

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

Makefile: add option to disable automatic dependency... Jonathan Nieder Fri, 18 Nov 2011 09:58:21 +0000 (03:58 -0600)

Makefile: add option to disable automatic dependency generation

Now that the COMPUTE_HEADER_DEPENDENCIES feature is turned on
automatically for compilers that support it (see v1.7.8-rc0~142^2~1,
2011-08-18), there is no easy way to force it off. For example,
setting COMPUTE_HEADER_DEPENDENCIES to the empty string in config.mak
just tells the makefile to treat it as undefined and run a test
command to see if the -MMD option is supported.

So allow setting COMPUTE_HEADER_DEPENDENCIES=no to explicitly force
the feature off. The new semantics:

- "yes" means to explicitly enable the feature
- "no" means to disable it
- "auto" means to autodetect

The default is still "auto". Any value other than these three will
cause the build to error out with a descriptive message so typos and
stale settings in config.mak don't result in mysterious behavior.

Makefile:1278: *** please set COMPUTE_HEADER_DEPENDENCIES to
yes, no, or auto (not "1"). Stop.

So now when someone using a compiler without -MMD support reports
trouble building git, you can reproduce it by running "make
COMPUTE_HEADER_DEPENDENCIES=no".

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

Sync with 1.7.7.4Junio C Hamano Fri, 18 Nov 2011 19:30:02 +0000 (11:30 -0800)

Sync with 1.7.7.4

Git 1.7.7.4 v1.7.7.4Junio C Hamano Fri, 18 Nov 2011 19:28:05 +0000 (11:28 -0800)

Git 1.7.7.4

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

Merge branch 'jc/maint-name-rev-all' into maintJunio C Hamano Fri, 18 Nov 2011 19:14:16 +0000 (11:14 -0800)

Merge branch 'jc/maint-name-rev-all' into maint

* jc/maint-name-rev-all:
name-rev --all: do not even attempt to describe non-commit object

Merge branch 'ml/mailmap' into maintJunio C Hamano Fri, 18 Nov 2011 19:14:00 +0000 (11:14 -0800)

Merge branch 'ml/mailmap' into maint

* ml/mailmap:
mailmap: xcalloc mailmap_info

Conflicts:
mailmap.c

Merge branch 'jn/maint-notes-avoid-va-args' into maintJunio C Hamano Fri, 18 Nov 2011 19:11:50 +0000 (11:11 -0800)

Merge branch 'jn/maint-notes-avoid-va-args' into maint

* jn/maint-notes-avoid-va-args:
notes merge: eliminate OUTPUT macro

Conflicts:
notes-merge.c

Makefile: add missing header file dependenciesJonathan Nieder Fri, 18 Nov 2011 10:02:02 +0000 (04:02 -0600)

Makefile: add missing header file dependencies

When the streaming filter API was introduced in v1.7.7-rc0~60^2~7
(2011-05-20), we forgot to add its header to LIB_H. Most translation
units depend on streaming.h via cache.h.

v1.7.5-rc0~48 (Fix sparse warnings, 2011-03-22) introduced undeclared
dependencies by url.o on url.h and thread-utils.o on thread-utils.h.

Noticed by make CHECK_HEADER_DEPENDENCIES=1.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

notes merge: eliminate OUTPUT macroJonathan Nieder Fri, 18 Nov 2011 01:27:46 +0000 (19:27 -0600)

notes merge: eliminate OUTPUT macro

The macro is variadic, which breaks support for pre-C99 compilers,
and it hides an "if", which can make code hard to understand on
first reading if some arguments have side-effects.

The OUTPUT macro seems to have been inspired by the "output" function
from merge-recursive. But that function in merge-recursive exists to
indent output based on the level of recursion and there is no similar
justification for such a function in "notes merge".

Noticed with 'make CC="gcc -std=c89 -pedantic"':

notes-merge.c:24:22: warning: anonymous variadic macros were introduced in C99 [-Wvariadic-macros]

Encouraged-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

do not let git_path clobber errno when reporting errorsJonathan Nieder Wed, 16 Nov 2011 08:03:36 +0000 (02:03 -0600)

do not let git_path clobber errno when reporting errors

Because git_path() calls vsnprintf(), code like

fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
die_errno(_("Could not write to '%s'"), git_path("SQUASH_MSG"));

can end up printing an error indicator from vsnprintf() instead of
open() by mistake. Store the path we are trying to write to in a
temporary variable and pass _that_ to die_errno(), so the messages
written by git cherry-pick/revert and git merge can avoid this source
of confusion.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.8-rc3 v1.7.8-rc3Junio C Hamano Thu, 17 Nov 2011 19:06:15 +0000 (11:06 -0800)

Git 1.7.8-rc3

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

pack-object: tolerate broken packs that have duplicated... Junio C Hamano Thu, 17 Nov 2011 06:04:03 +0000 (22:04 -0800)

pack-object: tolerate broken packs that have duplicated objects

When --reuse-delta is in effect (which is the default), and an existing
pack in the repository has the same object registered twice (e.g. one copy
in a non-delta format and the other copy in a delta against some other
object), an attempt to repack the repository can result in a cyclic delta
dependency, causing write_one() function to infinitely recurse into
itself.

Detect such a case and break the loopy dependency by writing out an object
that is involved in such a loop in the non-delta format.

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

receive-pack, fetch-pack: reject bogus pack that record... Junio C Hamano Thu, 17 Nov 2011 06:04:13 +0000 (22:04 -0800)

receive-pack, fetch-pack: reject bogus pack that records objects twice

When receive-pack & fetch-pack are run and store the pack obtained over
the wire to a local repository, they internally run the index-pack command
with the --strict option. Make sure that we reject incoming packfile that
records objects twice to avoid spreading such a damage.

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

refs: loosen over-strict "format" checkJunio C Hamano Thu, 17 Nov 2011 00:54:32 +0000 (16:54 -0800)

refs: loosen over-strict "format" check

The add_extra_ref() interface is used to add an extra-ref that is _not_
our ref for the purpose of helping auto-following of tags and reducing
object transfer from remote repository, and they are typically formatted
as a tagname followed by ^{} to make sure no valid refs match that
pattern. In other words, these entries are deliberately formatted not to
pass check-refname-format test.

A recent series however added a test unconditionally to the add_ref()
function that is called from add_extra_ref(). The check may be sensible
for other two callsites of the add_ref() interface, but definitely is
a wrong thing to do in add_extra_ref(). Disable it.

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

mailmap: xcalloc mailmap_infoMarc-André Lureau Thu, 17 Nov 2011 01:25:06 +0000 (02:25 +0100)

mailmap: xcalloc mailmap_info

This is to avoid reaching free of uninitialized members.

With an invalid .mailmap (and perhaps in other cases), it can reach
free(mi->name) with garbage for example.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

revert: prettify fatal messagesRamkumar Ramachandra Tue, 15 Nov 2011 09:31:32 +0000 (15:01 +0530)

revert: prettify fatal messages

Some of the fatal messages printed by revert and cherry-pick look ugly
like the following:

fatal: Could not open .git/sequencer/todo.: No such file or directory

The culprit here is that these callers of the die_errno() function did not
take it into account that the message string they give to it is followed
by ": <strerror>", hence the message typically should not end with the
full-stop.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add built-in diff patterns for MATLAB codeGustaf Hendeby Tue, 15 Nov 2011 20:15:03 +0000 (21:15 +0100)

Add built-in diff patterns for MATLAB code

MATLAB is often used in industry and academia for scientific
computations motivating it being included as a built-in pattern.

Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-compat-util: don't assume value for undefined variableRamkumar Ramachandra Tue, 15 Nov 2011 17:31:09 +0000 (23:01 +0530)

git-compat-util: don't assume value for undefined variable

Suggested-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_file: don't mix enum with intRamkumar Ramachandra Tue, 15 Nov 2011 16:59:39 +0000 (22:29 +0530)

sha1_file: don't mix enum with int

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

convert: don't mix enum with intRamkumar Ramachandra Tue, 15 Nov 2011 16:59:37 +0000 (22:29 +0530)

convert: don't mix enum with int

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: remove unused function hex()Ramkumar Ramachandra Tue, 15 Nov 2011 16:59:36 +0000 (22:29 +0530)

http: remove unused function hex()

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

name-rev --all: do not even attempt to describe non... Junio C Hamano Tue, 15 Nov 2011 23:51:05 +0000 (15:51 -0800)

name-rev --all: do not even attempt to describe non-commit object

This even dates back to the very beginning of "git name-rev";
it does not make much sense to dump all objects in the repository
and label non-commits as "undefined".

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

Revert "upload-archive: use start_command instead of... Junio C Hamano Tue, 15 Nov 2011 23:39:33 +0000 (15:39 -0800)

Revert "upload-archive: use start_command instead of fork"

This reverts commit c09cd77ea2fe3580b33918a99fe138d239ac2aaf, expecting a
better version to be rerolled soon.

Convert many resolve_ref() calls to read_ref*() and... Nguyễn Thái Ngọc Duy Sun, 13 Nov 2011 10:22:14 +0000 (17:22 +0700)

Convert many resolve_ref() calls to read_ref*() and ref_exists()

resolve_ref() may return a pointer to a static buffer, which is not
safe for long-term use because if another resolve_ref() call happens,
the buffer may be changed. Many call sites though do not care about
this buffer. They simply check if the return value is NULL or not.

Convert all these call sites to new wrappers to reduce resolve_ref()
calls from 57 to 34. If we change resolve_ref() prototype later on
to avoid passing static buffer out, this helps reduce changes.

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

commit-tree: teach -m/-F options to read logs from... Junio C Hamano Wed, 9 Nov 2011 19:54:04 +0000 (11:54 -0800)

commit-tree: teach -m/-F options to read logs from elsewhere

Just like "git commit" does.

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