Commit Graph

28960 Commits

Author SHA1 Message Date
Junio C Hamano
5a81266169 apply: further split load_preimage()
load_preimage() is very specific to grab the current contents for
the path given by patch->old_name.  Split the logic that grabs the
contents for a path out of it into a separate load_patch_target()
function.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:51 -07:00
Junio C Hamano
ccf998b297 apply: refactor "previous patch" logic
The code to grab the result of application of a previous patch in the
input was mixed with error message generation for a case where a later
patch tries to modify contents of a path that has been removed.

The same code is duplicated elsewhere in the code.  Introduce a helper
to clarify what is going on.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:50 -07:00
Junio C Hamano
37b9c903eb apply: split load_preimage() helper function out
Given a patch for a single path, the function apply_data() reads the
preimage in core, and applies the change represented in the patch.

Separate out the first part that reads the preimage into a separate
helper function load_preimage().

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
f4c66eeddd apply: factor out checkout_target() helper function
When a patch wants to touch a path, if the path exists in the index
but is missing in the working tree, "git apply --index" checks out
the file to the working tree from the index automatically and then
applies the patch.

Split this logic out to a separate helper function.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
e42a96e772 apply: refactor read_file_or_gitlink()
Reading a blob out of the object store does not have to require that the
caller has a cache entry for it.

Create a read_blob_object() helper function that takes the object name and
mode, and use it to reimplement the original function as a thin wrapper to
it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
798b9ce87b apply: clear_image() clears things a bit more
The clear_image() function did not clear the line table in the image
structure; this does not matter for the current callers, as the function
is only called from the codepaths that deal with binary patches where the
line table is never populated, and the codepaths that do populate the line
table free it themselves.

But it will start to matter when we introduce a codepath to retry a failed
patch, so make sure it clears and frees everything.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
f3b8f91a69 apply: a bit more comments on PATH_TO_BE_DELETED
The code is littered with to_be_deleted() whose purpose is not so clear.
Describe where it matters.  Also remove an extra space before "#define"
that snuck in by mistake at 7fac0ee (builtin-apply: keep information about
files to be deleted, 2009-04-11).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
15793646ac apply: fix an incomplete comment in check_patch()
This check is not only about type-change (for which it would be
sufficient to check only was_deleted()) but is also about a swap
rename.  Otherwise to_be_deleted() check is not justified.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-07-09 14:36:26 -07:00
Junio C Hamano
a3935e6791 The ninth batch of topics graduated to 'master'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-07 13:39:38 -07:00
Junio C Hamano
5543501ced Merge branch 'nh/empty-rebase'
By Neil Horman
* nh/empty-rebase:
  git cherry-pick: do not dereference a potential NULL pointer
2012-05-07 13:29:16 -07:00
Junio C Hamano
fc1320bfe2 Merge branch 'zj/diff-empty-chmod'
"git diff --stat" used to fully count a binary file with modified
execution bits whose contents is unmodified, which was not right.

By Zbigniew Jędrzejewski-Szmek (4) and Johannes Sixt (1)
* zj/diff-empty-chmod:
  t4006: Windows do not have /dev/zero
  diff --stat: do not run diff on indentical files
  diff --stat: report mode-only changes for binary files like text files
  tests: check --[short]stat output after chmod
  test: modernize style of t4006

Conflicts:
	diff.c
2012-05-07 13:29:08 -07:00
Junio C Hamano
43d1e41ea9 Merge branch 'jk/maint-tformat-with-z'
"log -z --pretty=tformat:..." does not terminate each record with NUL
and this is a beginning of an attempt to fix it.  It still is not right
but the patch does not make externally observable behaviour worse.

By Jan Krüger (1) and Junio C Hamano (1)
* jk/maint-tformat-with-z:
  log-tree: the previous one is still not quite right
  log-tree: use custom line terminator in line termination mode
2012-05-07 13:29:01 -07:00
Junio C Hamano
cae0977221 Merge branch 'th/difftool-diffall'
Rolls the two-directory-diff logic from diffall script (in contrib/) into
"git difftool" framework.

By Tim Henigan
* th/difftool-diffall:
  difftool: print list of valid tools with '--tool-help'
  difftool: teach difftool to handle directory diffs
  difftool: eliminate setup_environment function
  difftool: stop appending '.exe' to git
  difftool: remove explicit change of PATH
  difftool: exit(0) when usage is printed
  difftool: add '--no-gui' option
  difftool: parse options using Getopt::Long
2012-05-07 13:28:44 -07:00
Junio C Hamano
ad799ea375 Sync with maint 2012-05-07 13:28:34 -07:00
Junio C Hamano
42325fb2e0 Start preparing for 1.7.10.2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-07 13:24:32 -07:00
Junio C Hamano
dc813f664d Merge branch 'jk/maint-gitweb-test-use-sane-perl' into maint
When using a Perl script on a system where "perl" found on user's $PATH
could be ancient or otherwise broken, we allow builders to specify the
path to a good copy of Perl with $PERL_PATH.  The gitweb test forgot to
use that Perl when running its test.

By Jeff King (1) and Zbigniew Jędrzejewski-Szmek (1)
* jk/maint-gitweb-test-use-sane-perl:
  Consistently use perl from /usr/bin/ for scripts
  t/gitweb-lib: use $PERL_PATH to run gitweb
2012-05-07 13:17:31 -07:00
Junio C Hamano
6a88021e46 Merge branch 'js/daemon-test-race-fix' into maint
The test scaffolding for git-daemon was flaky.

By Johannes Sixt
* js/daemon-test-race-fix:
  t5570: fix forwarding of git-daemon messages via cat
2012-05-07 13:17:17 -07:00
Junio C Hamano
4c8ad06e7c Merge branch 'jk/maint-config-bogus-section' into maint
"git config --rename-section" to rename an existing section into a bogus
one did not check the new name.

By Jeff King
* jk/maint-config-bogus-section:
  config: reject bogus section names for --rename-section
2012-05-07 13:14:08 -07:00
Junio C Hamano
1d9fd6683c Merge branch 'pw/t5800-import-race-fix' into maint
The test scaffolding for fast-import was flaky.

By Pete Wyckoff
* pw/t5800-import-race-fix:
  git-remote-testgit: fix race when spawning fast-import
2012-05-07 13:13:56 -07:00
Junio C Hamano
a28b919f05 Merge branch 'rt/cherry-revert-conflict-summary' into maint
In the older days, the header "Conflicts:" in "cherry-pick" and "merge"
was separated by a blank line from the list of paths that follow for
readability, but when "merge" was rewritten in C, we lost it by
mistake. Remove the newline from "cherry-pick" to make them match again.

By Ralf Thielow
* rt/cherry-revert-conflict-summary:
  sequencer: remove additional blank line
2012-05-07 13:13:43 -07:00
Junio C Hamano
71a3222314 Merge branch 'cb/maint-report-mount-point-correctly-in-setup' into maint
The filesystem boundary was not correctly reported when .git directory
discovery stopped at a mount point.

By Clemens Buchacher
* cb/maint-report-mount-point-correctly-in-setup:
  properly keep track of current working directory
2012-05-07 13:13:03 -07:00
Pete Wyckoff
41925d5802 git p4 doc: fix formatting
Attach example sections to previous level of indenting.

Fix a trailing ::

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-07 11:11:05 -07:00
Nguyễn Thái Ngọc Duy
8275905e7e Makefile: keep many variable list sorted
We tend to keep long lists sorted (extensions are not taken into
account), which helps spot a name easily by eye. Rearrange a few
items so these lists remain sorted.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-04 09:31:28 -07:00
Neil Horman
4b580061b3 git cherry-pick: do not dereference a potential NULL pointer
In the case the pointer could be NULL, the function that gave the caller
the NULL pointer would already have issued an error message, so simply
returning early with an error status without issuing a new message is
sufficient.  The same for parse_commit() that will show necessary error
message when the argument is not NULL, and will return error silently
when the argument is NULL.

Noticed-by: Michael Mueller
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-03 15:41:35 -07:00
Junio C Hamano
16798d0f48 Merge branch 'maint'
* maint:
2012-05-03 15:37:28 -07:00
Junio C Hamano
edf141218e Merge branch 'jc/merge-reduce-parents-early' into maint
Octopus merge strategy did not reduce heads that are recorded in the final
commit correctly.

By Junio C Hamano (4) and Michał Kiedrowicz (1)
* jc/merge-reduce-parents-early:
  fmt-merge-msg: discard needless merge parents
  builtin/merge.c: reduce parents early
  builtin/merge.c: collect other parents early
  builtin/merge.c: remove "remoteheads" global variable
  merge tests: octopus with redundant parents
2012-05-03 15:36:15 -07:00
Junio C Hamano
c4da6c0b76 Merge branch 'cb/cherry-pick-rev-path-confusion' into maint
The command line parser choked "git cherry-pick $name" when $name can be
both revision name and a pathname, even though $name can never be a path
in the context of the command.

By Clemens Buchacher
* cb/cherry-pick-rev-path-confusion:
  cherry-pick: do not expect file arguments
2012-05-03 15:35:19 -07:00
Junio C Hamano
c968338042 Merge branch 'cb/http-multi-curl-auth' into maint
HTTP transport that requires authentication did not work correctly when
multiple connections are used simultaneously.

By Jeff King (3) and Clemens Buchacher (1)
* cb/http-multi-curl-auth:
  http: use newer curl options for setting credentials
  http: clean up leak in init_curl_http_auth
  fix http auth with multiple curl handles
  http auth fails with multiple curl handles
2012-05-03 15:34:51 -07:00
Junio C Hamano
66bca3f722 Merge branch 'mb/fetch-call-a-non-branch-a-ref' into maint
The report from "git fetch" said "new branch" even for a non branch ref.

By Marc Branchaud
* mb/fetch-call-a-non-branch-a-ref:
  fetch: describe new refs based on where it came from
  fetch: Give remote_ref to update_local_ref() as well
2012-05-03 15:29:25 -07:00
Junio C Hamano
beac07eab9 Merge branch 'rl/maint-stash-i18n-save-error' into maint
i18n marking for an error message for "git stash --notavalidoption"
was incorrect.

By Ross Lagerwall
* rl/maint-stash-i18n-save-error:
  stash: use eval_gettextln correctly
2012-05-03 15:24:22 -07:00
Junio C Hamano
a16ae14e48 Merge branch 'jm/maint-strncpy-diff-no-index' into maint
"diff --no-index" codepath had a few places that used fixed-size
buffer and truncated paths that are too long.

By Jim Meyering (1) and Junio C Hamano (1)
* jm/maint-strncpy-diff-no-index:
  diff --no-index: use strbuf for temporary pathnames
  diff: avoid stack-buffer-read-overrun for very long name
2012-05-03 15:23:17 -07:00
Junio C Hamano
4c732da91c Merge branch 'jk/maint-push-progress'
"git push" over smart-http lost progress output and this resurrects it.

By Jeff King
* jk/maint-push-progress:
  t5541: test more combinations of --progress
  teach send-pack about --[no-]progress
  send-pack: show progress when isatty(2)
2012-05-03 15:13:55 -07:00
Junio C Hamano
f4ed0af6e2 Merge branch 'nd/columns'
A couple of commands learn --column option to produce columnar output.

By Nguyễn Thái Ngọc Duy (9) and Zbigniew Jędrzejewski-Szmek (1)
* nd/columns:
  tag: add --column
  column: support piping stdout to external git-column process
  status: add --column
  branch: add --column
  help: reuse print_columns() for help -a
  column: add dense layout support
  t9002: work around shells that are unable to set COLUMNS to 1
  column: add columnar layout
  Stop starting pager recursively
  Add column layout skeleton and git-column
2012-05-03 15:13:31 -07:00
Jeff King
9a7b0bca36 doc/config: fix inline literals
Since commit 6cf378f, asciidoc backticks are now inline
literals; therefore quoting {tilde} inside them is wrong
(this instance was missed in 6cf378f because it happened on
a parallel line of development).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-03 00:05:01 -07:00
Junio C Hamano
34875f4a53 The eighth batch of topics graduated to 'master'
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-02 14:38:43 -07:00
Junio C Hamano
d73f640fcb Merge branch 'master' of git://git.bogomips.org/git-svn
via Eric Wong
* 'master' of git://git.bogomips.org/git-svn:
  git-svn: introduce SVN version comparison function
2012-05-02 14:38:29 -07:00
Junio C Hamano
4d1f0ef210 Merge branch 'tr/xdiff-fast-hash'
Use word-at-a-time comparison to find end of line or NUL (end of buffer),
borrowed from the linux-kernel discussion.

By Thomas Rast
* tr/xdiff-fast-hash:
  xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE
  xdiff: load full words in the inner loop of xdl_hash_record
2012-05-02 13:54:58 -07:00
Junio C Hamano
e834fa0d5c Merge branch 'jk/maint-gitweb-test-use-sane-perl'
When using a Perl script on a system where "perl" found on user's $PATH
could be ancient or otherwise broken, we allow builders to specify the
path to a good copy of Perl with $PERL_PATH.  The gitweb test forgot to
use that Perl when running its test.

By Jeff King (1) and Zbigniew Jędrzejewski-Szmek (1)
* jk/maint-gitweb-test-use-sane-perl:
  Consistently use perl from /usr/bin/ for scripts
  t/gitweb-lib: use $PERL_PATH to run gitweb
2012-05-02 13:53:40 -07:00
Junio C Hamano
2fa4fff4b9 Merge branch 'pw/message-cleanup'
Many error/warning messages had extra trailing newlines that are
unnecessary.

By Pete Wyckoff
* pw/message-cleanup:
  remove blank filename in error message
  remove superfluous newlines in error messages
2012-05-02 13:53:35 -07:00
Junio C Hamano
29c2a3dbad Merge branch 'zj/diff-stat-smaller-num-columns'
Spend only minimum number of columns necessary to show the number of lines
in the output from "diff --stat", instead of always allocating 4 columns
even when showing changes that are much smaller than 1000 lines.

By Zbigniew Jędrzejewski-Szmek
* zj/diff-stat-smaller-num-columns:
  diff --stat: use less columns for change counts
2012-05-02 13:53:28 -07:00
Junio C Hamano
a5f9ba9989 Merge branch 'pw/p4-various'
Miscellaneous updates to "git p4".

By Pete Wyckoff
* pw/p4-various:
  git p4: submit files with wildcards
  git p4: fix writable file after rename or copy
  git p4: test submit
  git p4: bring back files in deleted client directory
2012-05-02 13:53:23 -07:00
Junio C Hamano
7b871c53db Merge branch 'jc/rerere-train'
A script written long time ago proved to be useful this week for me ;-)
with a minor tweak.

* jc/rerere-train:
  contrib/rerere-train: use installed git-sh-setup
2012-05-02 13:53:15 -07:00
Junio C Hamano
d7c03ca1ea Merge branch 'ab/i18n'
Fix some constructs that build messages meant for i18n by concatenating
pieces of strings.

By Ævar Arnfjörð Bjarmason
* ab/i18n:
  git-commit: remove lego in i18n messages
  git-commit: remove lego in i18n messages
  git-branch: remove lego in i18n messages
2012-05-02 13:53:02 -07:00
Junio C Hamano
73ff8cf784 Merge branch 'lp/diffstat-with-graph'
"log --graph" was not very friendly with "--stat" option and its output
had line breaks at wrong places.

By Lucian Poston (5) and Zbigniew Jędrzejewski-Szmek (2)
* lp/diffstat-with-graph:
  t4052: work around shells unable to set COLUMNS to 1
  Prevent graph_width of stat width from falling below min
  t4052: Test diff-stat output with minimum columns
  t4052: Adjust --graph --stat output for prefixes
  Adjust stat width calculations to take --graph output into account
  Add output_prefix_length to diff_options
  t4052: test --stat output with --graph
2012-05-02 13:51:59 -07:00
Junio C Hamano
85dcc3820b Merge branch 'zj/mksh-columns-breakage'
A broken shell may not let us set an environment value to an arbitrary
value, interfering with some of the tests. Introduce a test prerequisite
so that we can skip some tests on such a platform.

By Zbigniew Jędrzejewski-Szmek
* zj/mksh-columns-breakage:
  test-lib: skip test with COLUMNS=1 under mksh
2012-05-02 13:51:53 -07:00
Junio C Hamano
d274fc093c Merge branch 'jk/doc-asciidoc-inline-literal'
Our documentation was written for an ancient version of AsciiDoc,
making the source not very readable.

By Jeff King
* jk/doc-asciidoc-inline-literal:
  docs: stop using asciidoc no-inline-literal
2012-05-02 13:51:45 -07:00
Junio C Hamano
1be65eda6a Merge branch 'nd/i18n'
More message strings marked for i18n.

By Nguyễn Thái Ngọc Duy (10) and Jonathan Nieder (1)
* nd/i18n:
  help: replace underlining "help -a" headers using hyphens with a blank line
  i18n: bundle: mark strings for translation
  i18n: index-pack: mark strings for translation
  i18n: apply: update say_patch_name to give translators complete sentence
  i18n: apply: mark strings for translation
  i18n: remote: mark strings for translation
  i18n: make warn_dangling_symref() automatically append \n
  i18n: help: mark strings for translation
  i18n: mark relative dates for translation
  strbuf: convenience format functions with \n automatically appended
  Makefile: feed all header files to xgettext
2012-05-02 13:51:35 -07:00
Junio C Hamano
a3db8511b7 Merge branch 'mm/simple-push'
New users tend to work on one branch at a time and push the result
out. The current and upstream modes of push is a more suitable default
mode than matching mode for these people, but neither is surprise-free
depending on how the project is set up. Introduce a "simple" mode that
is a subset of "upstream" but only works when the branch is named the same
between the remote and local repositories.

The plan is to make it the new default when push.default is not
configured.

By Matthieu Moy (5) and others
* mm/simple-push:
  push.default doc: explain simple after upstream
  push: document the future default change for push.default (matching -> simple)
  t5570: use explicit push refspec
  push: introduce new push.default mode "simple"
  t5528-push-default.sh: add helper functions
  Undocument deprecated alias 'push.default=tracking'
  Documentation: explain push.default option a bit more
2012-05-02 13:51:24 -07:00
Junio C Hamano
d4a5d872c0 Merge branch 'jc/index-v4'
Trivially shrinks the on-disk size of the index file to save both I/O and
checksum overhead.

The topic should give a solid base to build on further updates, with the
code refactoring in its earlier parts, and the backward compatibility
mechanism in its later parts.

* jc/index-v4:
  index-v4: document the entry format
  unpack-trees: preserve the index file version of original
  update-index: upgrade/downgrade on-disk index version
  read-cache.c: write prefix-compressed names in the index
  read-cache.c: read prefix-compressed names in index on-disk version v4
  read-cache.c: move code to copy incore to ondisk cache to a helper function
  read-cache.c: move code to copy ondisk to incore cache to a helper function
  read-cache.c: report the header version we do not understand
  read-cache.c: make create_from_disk() report number of bytes it consumed
  read-cache.c: allow unaligned mapping of the index file
  cache.h: hide on-disk index details
  varint: make it available outside the context of pack
2012-05-02 13:51:13 -07:00
Junio C Hamano
f760c903b8 git-svn: introduce SVN version comparison function
With double-digit version components in SVN::Core::VERSION,
a naive string comparison is no longer sufficient and
a numeric comparison is required for correct results.

This fixes a regression introduced in
commit 082afee621
("git-svn: use platform specific auth providers")
where SVN version "1.6.6" was incorrectly assumed to
be newer than the required "1.6.12" version.

[mk: fix namespace references]
[ew: commit message]

Tested-by: Matthijs Kooijman <matthijs@stdin.nl>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-05-02 20:11:18 +00:00