git.git
12 years agoMerge branch 'jc/apply-3way'
Junio C Hamano [Mon, 16 Jul 2012 04:38:51 +0000 (21:38 -0700)]
Merge branch 'jc/apply-3way'

"git apply" learned to wiggle the base version and perform three-way
merge when a patch does not exactly apply to the version you have.

* jc/apply-3way:
  apply: tests for the --3way option
  apply: document --3way option
  apply: allow rerere() to work on --3way results
  apply: register conflicted stages to the index
  apply: --3way with add/add conflict
  apply: move verify_index_match() higher
  apply: plug the three-way merge logic in
  apply: fall back on three-way merge
  apply: accept -3/--3way command line option
  apply: move "already exists" logic to check_to_create()
  apply: move check_to_create_blob() closer to its sole caller
  apply: further split load_preimage()
  apply: refactor "previous patch" logic
  apply: split load_preimage() helper function out
  apply: factor out checkout_target() helper function
  apply: refactor read_file_or_gitlink()
  apply: clear_image() clears things a bit more
  apply: a bit more comments on PATH_TO_BE_DELETED
  apply: fix an incomplete comment in check_patch()

12 years agoMerge branch 'cw/rebase-i-root'
Junio C Hamano [Mon, 16 Jul 2012 04:38:41 +0000 (21:38 -0700)]
Merge branch 'cw/rebase-i-root'

"git rebase [-i] --root $tip" can now be used to rewrite all the
history down to the root.

* cw/rebase-i-root:
  t3404: make test 57 work with dash and others
  Add tests for rebase -i --root without --onto
  rebase -i: support --root without --onto

12 years agoMerge branch 'pw/git-p4-move'
Junio C Hamano [Mon, 16 Jul 2012 04:38:32 +0000 (21:38 -0700)]
Merge branch 'pw/git-p4-move'

* pw/git-p4-move:
  git p4: add support for 'p4 move' in P4Submit
  git p4: refactor diffOpts calculation

12 years agoMerge branch 'pw/git-p4-jobs'
Junio C Hamano [Sat, 14 Jul 2012 04:22:12 +0000 (21:22 -0700)]
Merge branch 'pw/git-p4-jobs'

Teach "git p4" to notice "Jobs:" in the log message and relay it to
Perforce to trigger its "jobs" support.

# By Pete Wyckoff
* pw/git-p4-jobs:
  git p4: notice Jobs lines in git commit messages
  git p4 test: refactor marshal_dump
  git p4: remove unused P4Submit interactive setting

12 years agoMerge branch 'jk/push-delete-ref-error-message'
Junio C Hamano [Sat, 14 Jul 2012 04:22:12 +0000 (21:22 -0700)]
Merge branch 'jk/push-delete-ref-error-message'

The error message from "git push $there :bogo" mentioned we tried
and failed to guess what ref is being deleted based on the LHS of
the refspec, which we don't.

# By Jeff King
* jk/push-delete-ref-error-message:
  push: don't guess at qualifying remote refs on deletion

12 years agoSixth batch for 1.7.12
Junio C Hamano [Fri, 13 Jul 2012 22:48:50 +0000 (15:48 -0700)]
Sixth batch for 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/refactor-diff-stdin'
Junio C Hamano [Fri, 13 Jul 2012 22:38:05 +0000 (15:38 -0700)]
Merge branch 'jc/refactor-diff-stdin'

Due to the way "git diff --no-index" is bolted onto by touching the
low level code that is shared with the rest of the "git diff" code,
even though it has to work in a very different way, any comparison
that involves a file "-" at the root level incorrectly tried to read
from the standard input.  This cleans up the no-index codepath
further to remove code that reads from the standard input from the
core side, which is never necessary when git is running its usual
diff operation.

* jc/refactor-diff-stdin:
  diff-index.c: "git diff" has no need to read blob from the standard input
  diff-index.c: unify handling of command line paths
  diff-index.c: do not pretend paths are pathspecs

12 years agoMerge branch 'tg/ce-namelen'
Junio C Hamano [Fri, 13 Jul 2012 22:37:58 +0000 (15:37 -0700)]
Merge branch 'tg/ce-namelen'

Trivially correct clean-up and micro optimization.

* tg/ce-namelen:
  Replace strlen() with ce_namelen()

12 years agoMerge branch 'tb/sanitize-decomposed-utf-8-pathname'
Junio C Hamano [Fri, 13 Jul 2012 22:37:51 +0000 (15:37 -0700)]
Merge branch 'tb/sanitize-decomposed-utf-8-pathname'

Teaches git to normalize pathnames read from readdir(3) and all
arguments from the command line into precomposed UTF-8 (assuming
that they come as decomposed UTF-8) to work around issues on Mac OS.

I think there still are other places that need conversion
(e.g. paths that are read from stdin for some commands), but this
should be a good first step in the right direction.

* tb/sanitize-decomposed-utf-8-pathname:
  git on Mac OS and precomposed unicode

12 years agoMerge branch 'mm/mediawiki-tests'
Junio C Hamano [Fri, 13 Jul 2012 22:37:46 +0000 (15:37 -0700)]
Merge branch 'mm/mediawiki-tests'

* mm/mediawiki-tests:
  git-remote-mediawiki: be more defensive when requests fail
  git-remote-mediawiki: more efficient 'pull' in the best case
  git-remote-mediawiki: extract revision-importing loop to a function
  git-remote-mediawiki: refactor loop over revision ids
  git-remote-mediawiki: change return type of get_mw_pages
  git-remote-mediawiki (t9363): test 'File:' import and export
  git-remote-mediawiki: support for uploading file in test environment
  git-remote-mediawiki (t9362): test git-remote-mediawiki with UTF8 characters
  git-remote-mediawiki (t9361): test git-remote-mediawiki pull and push
  git-remote-mediawiki (t9360): test git-remote-mediawiki clone
  git-remote-mediawiki: test environment of git-remote-mediawiki
  git-remote-mediawiki: scripts to install, delete and clear a MediaWiki

12 years agoMerge branch 'jn/vcs-svn'
Junio C Hamano [Fri, 13 Jul 2012 22:37:04 +0000 (15:37 -0700)]
Merge branch 'jn/vcs-svn'

vcs-svn updates to clean-up compilation, lift 32-bit limitations, etc.

* jn/vcs-svn:
  vcs-svn: allow 64-bit Prop-Content-Length
  vcs-svn: suppress a signed/unsigned comparison warning
  vcs-svn: suppress a signed/unsigned comparison warning
  vcs-svn: suppress signed/unsigned comparison warnings
  vcs-svn: use strstr instead of memmem
  vcs-svn: use constcmp instead of prefixcmp
  vcs-svn: simplify cleanup in apply_one_window
  vcs-svn: avoid self-assignment in dummy initialization of pre_off
  vcs-svn: drop no-op reset methods
  vcs-svn: suppress -Wtype-limits warning
  vcs-svn: allow import of > 4GiB files
  vcs-svn: rename check_overflow and its arguments for clarity

12 years agoMerge branch 'mm/mediawiki-file-attachments'
Junio C Hamano [Fri, 13 Jul 2012 22:36:53 +0000 (15:36 -0700)]
Merge branch 'mm/mediawiki-file-attachments'

"mediawiki" remote helper (in contrib/) learned to handle file
attachments.

* mm/mediawiki-file-attachments:
  git-remote-mediawiki: improve support for non-English Wikis
  git-remote-mediawiki: import "File:" attachments
  git-remote-mediawiki: split get_mw_pages into smaller functions
  git-remote-mediawiki: send "File:" attachments to a remote wiki
  git-remote-mediawiki: don't "use encoding 'utf8';"
  git-remote-mediawiki: don't compute the diff when getting commit message

12 years agoMerge branch 'tr/maint-show-walk'
Junio C Hamano [Fri, 13 Jul 2012 22:36:44 +0000 (15:36 -0700)]
Merge branch 'tr/maint-show-walk'

Fixes "git show"'s auto-walking behaviour, and make it behave just
like "git log" does when it walks.

* tr/maint-show-walk:
  show: fix "range implies walking"
  Demonstrate git-show is broken with ranges

12 years agoMerge branch 'mz/rebase-no-mbox'
Junio C Hamano [Fri, 13 Jul 2012 22:36:31 +0000 (15:36 -0700)]
Merge branch 'mz/rebase-no-mbox'

Teach "am --rebasing" codepath to grab authorship, log message and
the patch text directly out of existing commits.  This will help
rebasing commits that have confusing "diff" output in their log
messages.

* mz/rebase-no-mbox:
  am: don't call mailinfo if $rebasing
  am --rebasing: get patch body from commit, not from mailbox
  rebase --root: print usage on too many args
  rebase: don't source git-sh-setup twice

12 years agogit p4: add support for 'p4 move' in P4Submit
Gary Gibbons [Thu, 12 Jul 2012 23:29:00 +0000 (19:29 -0400)]
git p4: add support for 'p4 move' in P4Submit

For -M option (detectRenames) in P4Submit, use 'p4 move' rather
than 'p4 integrate'.  Check Perforce server for exisitence of
'p4 move' and use it if present, otherwise revert to 'p4 integrate'.

[pw: wildcard-encode src/dest, add/update tests, tweak code]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoReduce draft release notes to 1.7.12
Junio C Hamano [Wed, 11 Jul 2012 20:48:57 +0000 (13:48 -0700)]
Reduce draft release notes to 1.7.12

Many "fixes since 1.7.11" items are now in the maintenance track

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.2
Junio C Hamano [Wed, 11 Jul 2012 20:00:51 +0000 (13:00 -0700)]
Sync with 1.7.11.2

12 years agoGit 1.7.11.2 v1.7.11.2
Junio C Hamano [Wed, 11 Jul 2012 19:55:38 +0000 (12:55 -0700)]
Git 1.7.11.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-blame-unique-abbrev' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:58:28 +0000 (12:58 -0700)]
Merge branch 'jc/maint-blame-unique-abbrev' into maint

"git blame" did not try to make sure that the abbreviated commit
object names in its output are unique.

* jc/maint-blame-unique-abbrev:
  blame: compute abbreviation width that ensures uniqueness

12 years agoMerge branch 'rj/platform-pread-may-be-thread-unsafe' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:57:28 +0000 (12:57 -0700)]
Merge branch 'rj/platform-pread-may-be-thread-unsafe' into maint

On Cygwin, the platform pread(2) is not thread safe, just like our own
compat/ emulation, and cannot be used in the index-pack program.
Makefile variable NO_THREAD_SAFE_PREAD can be defined to avoid use of
this function in a threaded program.

* rj/platform-pread-may-be-thread-unsafe:
  index-pack: Disable threading on cygwin

12 years agoMerge branch 'th/diff-no-index-fixes' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:48:44 +0000 (12:48 -0700)]
Merge branch 'th/diff-no-index-fixes' into maint

"git diff --no-index" did not correctly handle relative paths and
did not correctly give exit codes when run under "--quiet" option.

* th/diff-no-index-fixes:
  diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes
  diff: handle relative paths in no-index

12 years agoMerge branch 'nd/clone-single-fix' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:48:29 +0000 (12:48 -0700)]
Merge branch 'nd/clone-single-fix' into maint

"git clone --single-branch" to clone a single branch did not limit
the cloning to the specified branch.

* nd/clone-single-fix:
  clone: fix ref selection in --single-branch --branch=xxx

12 years agoMerge branch 'jc/rev-list-simplify-merges-first-parent' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:57 +0000 (12:46 -0700)]
Merge branch 'jc/rev-list-simplify-merges-first-parent' into maint

When "git log" gets "--simplify-merges/by-decoration" together with
"--first-parent", the combination of these options makes the
simplification logic to use in-core commit objects that haven't been
examined for relevance, either producing incorrect result or taking
too long to produce any output.  Teach the simplification logic to
ignore commits that the first-parent traversal logic ignored when
both are in effect to work around the issue.

* jc/rev-list-simplify-merges-first-parent:
  revision: ignore side parents while running simplify-merges
  revision: note the lack of free() in simplify_merges()
  revision: "simplify" options imply topo-order sort

12 years agoMerge branch 'hv/submodule-update-nuke-submodules' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:31 +0000 (12:46 -0700)]
Merge branch 'hv/submodule-update-nuke-submodules' into maint

"git add" allows adding a regular file to the path where a submodule
used to exist, but "git update-index" did not allow an equivalent
operation to Porcelain writers.

* hv/submodule-update-nuke-submodules:
  update-index: allow overwriting existing submodule index entries

12 years agoMerge branch 'jk/diff-no-index-pager' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:46:21 +0000 (12:46 -0700)]
Merge branch 'jk/diff-no-index-pager' into maint

"git diff --no-index" did not work with pagers correctly.

* jk/diff-no-index-pager:
  do not run pager with diff --no-index --quiet
  fix pager.diff with diff --no-index

12 years agoMerge branch 'mm/verify-filename-fix' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:49 +0000 (12:45 -0700)]
Merge branch 'mm/verify-filename-fix' into maint

"git diff COPYING HEAD:COPYING" gave a nonsense error message that
claimed that the treeish HEAD did not have COPYING in it.

* mm/verify-filename-fix:
  verify_filename(): ask the caller to chose the kind of diagnosis
  sha1_name: do not trigger detailed diagnosis for file arguments

12 years agoMerge branch 'cn/cherry-pick-range-docs' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:34 +0000 (12:45 -0700)]
Merge branch 'cn/cherry-pick-range-docs' into maint

The documentation for "git cherry-pick A B..C" was misleading.

* cn/cherry-pick-range-docs:
  git-cherry-pick.txt: clarify the use of revision range notation
  Documentation: --no-walk is no-op if range is specified

12 years agoMerge branch 'jc/ustar-checksum-is-unsigned' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:45:07 +0000 (12:45 -0700)]
Merge branch 'jc/ustar-checksum-is-unsigned' into maint

"git archive" incorrectly computed the header checksum; the symptom
was observed only when using pathnames with hi-bit set.

* jc/ustar-checksum-is-unsigned:
  archive: ustar header checksum is computed unsigned

12 years agoMerge branch 'jc/bundle-complete-notice' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:44:50 +0000 (12:44 -0700)]
Merge branch 'jc/bundle-complete-notice' into maint

Running "git bundle verify" on a bundle that records a complete
history said "it requires these 0 commits".

* jc/bundle-complete-notice:
  tweak "bundle verify" of a complete history

12 years agoMerge branch 'jc/ls-files-i-dir' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:44:34 +0000 (12:44 -0700)]
Merge branch 'jc/ls-files-i-dir' into maint

"git ls-files --exclude=t -i" did not consider anything under t/ as
excluded, as it did not pay attention to exclusion of leading paths
while walking the index.  Other two users of excluded() are also
updated.

* jc/ls-files-i-dir:
  dir.c: make excluded() file scope static
  unpack-trees.c: use path_excluded() in check_ok_to_remove()
  builtin/add.c: use path_excluded()
  path_excluded(): update API to less cache-entry centric
  ls-files -i: micro-optimize path_excluded()
  ls-files -i: pay attention to exclusion of leading paths

12 years agoMerge branch 'jc/request-pull-match-tagname' into maint
Junio C Hamano [Wed, 11 Jul 2012 19:43:58 +0000 (12:43 -0700)]
Merge branch 'jc/request-pull-match-tagname' into maint

"git request-pull $url dev" when the tip of "dev" branch was tagged
with "ext4-for-linus" used the contents from the tag in the output
but still asked the "dev" branch to be pulled, not the tag.

* jc/request-pull-match-tagname:
  request-pull: really favor a matching tag

12 years agoapply: tests for the --3way option
Junio C Hamano [Wed, 13 Jun 2012 05:57:57 +0000 (22:57 -0700)]
apply: tests for the --3way option

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: document --3way option
Junio C Hamano [Thu, 10 May 2012 21:08:29 +0000 (14:08 -0700)]
apply: document --3way option

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: allow rerere() to work on --3way results
Junio C Hamano [Thu, 10 May 2012 20:56:49 +0000 (13:56 -0700)]
apply: allow rerere() to work on --3way results

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: register conflicted stages to the index
Junio C Hamano [Wed, 9 May 2012 23:50:58 +0000 (16:50 -0700)]
apply: register conflicted stages to the index

Now we have all the necessary logic to fall back on three-way merge when
the patch does not cleanly apply, insert the conflicted entries to the
index as appropriate.  This obviously triggers only when the "--index"
option is used.

When we fall back to three-way merge and some of the merges fail, just
like the case where the "--reject" option was specified and we had to
write some "*.rej" files out for unapplicable patches, exit the command
with non-zero status without showing the diffstat and summary.  Otherwise
they would make the list of problematic paths scroll off the display.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: --3way with add/add conflict
Junio C Hamano [Thu, 7 Jun 2012 22:04:11 +0000 (15:04 -0700)]
apply: --3way with add/add conflict

When a patch wants to create a path, but we already have it in our
current state, pretend as if the patch and we independently added
the same path and cause add/add conflict, so that the user can
resolve it just like "git merge" in the same situation.

For that purpose, implement load_current() in terms of the
load_patch_target() helper introduced earlier to read the current
contents from the path given by patch->new_name (patch->old_name is
NULL for a creation patch).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: move verify_index_match() higher
Junio C Hamano [Wed, 13 Jun 2012 04:16:02 +0000 (21:16 -0700)]
apply: move verify_index_match() higher

We will be adding another caller of this function in a later patch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: plug the three-way merge logic in
Junio C Hamano [Wed, 9 May 2012 23:10:51 +0000 (16:10 -0700)]
apply: plug the three-way merge logic in

When a patch does not apply to what we have, but we know the preimage the
patch was made against, we apply the patch to the preimage to compute what
the patch author wanted the result to look like, and attempt a three-way
merge between the result and our version, using the intended preimage as
the base version.

When we are applying the patch using the index, we would additionally need
to add the object names of these three blobs involved in the merge, which
is not yet done in this step, but we add a field to "struct patch" so that
later write-out step can use it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: fall back on three-way merge
Junio C Hamano [Fri, 8 Jun 2012 16:54:10 +0000 (09:54 -0700)]
apply: fall back on three-way merge

Grab the preimage blob the patch claims to be based on out of the object
store, apply the patch, and then call three-way-merge function.  This step
still does not plug the actual three-way merge logic yet, but we are
getting there.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: accept -3/--3way command line option
Junio C Hamano [Tue, 8 May 2012 20:21:53 +0000 (13:21 -0700)]
apply: accept -3/--3way command line option

Begin teaching the three-way merge fallback logic "git am -3" uses
to the underlying "git apply".  It only implements the command line
parsing part, and does not do anything interesting yet, other than
making sure that "--reject" and "--3way" are not given together, and
making "--3way" imply "--index".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: move "already exists" logic to check_to_create()
Junio C Hamano [Thu, 7 Jun 2012 21:10:19 +0000 (14:10 -0700)]
apply: move "already exists" logic to check_to_create()

The check_to_create_blob() function used to check only the case
where we are applying to the working tree.  Rename the function to
check_to_create() and make it also responsible for checking the case
where we apply to the index.  Also make its caller responsible for
issuing an error message.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: move check_to_create_blob() closer to its sole caller
Junio C Hamano [Thu, 7 Jun 2012 21:06:47 +0000 (14:06 -0700)]
apply: move check_to_create_blob() closer to its sole caller

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoapply: further split load_preimage()
Junio C Hamano [Tue, 12 Jun 2012 22:23:54 +0000 (15:23 -0700)]
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>
12 years agoapply: refactor "previous patch" logic
Junio C Hamano [Wed, 16 May 2012 21:03:52 +0000 (14:03 -0700)]
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>
12 years agoapply: split load_preimage() helper function out
Junio C Hamano [Tue, 8 May 2012 20:35:21 +0000 (13:35 -0700)]
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>
12 years agoapply: factor out checkout_target() helper function
Junio C Hamano [Wed, 13 Jun 2012 05:47:12 +0000 (22:47 -0700)]
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>
12 years agoapply: refactor read_file_or_gitlink()
Junio C Hamano [Tue, 8 May 2012 22:11:02 +0000 (15:11 -0700)]
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>
12 years agoapply: clear_image() clears things a bit more
Junio C Hamano [Tue, 8 May 2012 21:38:06 +0000 (14:38 -0700)]
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>
12 years agoapply: a bit more comments on PATH_TO_BE_DELETED
Junio C Hamano [Wed, 16 May 2012 20:21:39 +0000 (13:21 -0700)]
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>
12 years agoapply: fix an incomplete comment in check_patch()
Junio C Hamano [Wed, 16 May 2012 22:31:18 +0000 (15:31 -0700)]
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>
12 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 9 Jul 2012 17:26:23 +0000 (10:26 -0700)]
Merge git://github.com/git-l10n/git-po

Translation updates for various languages.

* git://github.com/git-l10n/git-po:
  l10n: zh_CN.po: translate 29 new messages
  l10n: de.po: translate 29 new messages
  Update Swedish translation (1095t0f0u)
  l10n: Update translation for Vietnamese
  l10n: Update git.pot (29 new messages)

12 years agoFifth batch for 1.7.12
Junio C Hamano [Mon, 9 Jul 2012 16:49:37 +0000 (09:49 -0700)]
Fifth batch for 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'cw/help-over-network'
Junio C Hamano [Mon, 9 Jul 2012 16:02:19 +0000 (09:02 -0700)]
Merge branch 'cw/help-over-network'

"git help -w $cmd" can show HTML version of documentation for
"git-$cmd" by setting help.htmlpath to somewhere other than the
default location where the build procedure installs them locally;
the variable can even point at a http:// URL.

* cw/help-over-network:
  Allow help.htmlpath to be a URL prefix
  Add config variable to set HTML path for git-help --web

12 years agoMerge branch 'mz/empty-rebase-test'
Junio C Hamano [Mon, 9 Jul 2012 16:02:15 +0000 (09:02 -0700)]
Merge branch 'mz/empty-rebase-test'

We did not have test to make sure "git rebase" without extra options
filters out an empty commit in the original history.

* mz/empty-rebase-test:
  add test case for rebase of empty commit

12 years agoMerge branch 'pw/git-p4-tests'
Junio C Hamano [Mon, 9 Jul 2012 16:02:11 +0000 (09:02 -0700)]
Merge branch 'pw/git-p4-tests'

More "git p4" tests.

* pw/git-p4-tests:
  git p4 test: fix badp4dir test
  git p4 test: split up big t9800 test
  git p4 test: cleanup_git should make a new $git
  git p4 test: copy source indeterminate
  git p4 test: check for error message in failed test
  git p4 test: rename some "git-p4 command" strings
  git p4 test: never create default test repo
  git p4 test: simplify quoting involving TRASH_DIRECTORY
  git p4 test: use real_path to resolve p4 client symlinks
  git p4 test: wait longer for p4d to start and test its pid

12 years agoMerge branch 'js/fast-export-paths-with-spaces'
Junio C Hamano [Mon, 9 Jul 2012 16:02:06 +0000 (09:02 -0700)]
Merge branch 'js/fast-export-paths-with-spaces'

"git fast-export" produced an input stream for fast-import without
properly quoting pathnames when they contain SPs in them.

* js/fast-export-paths-with-spaces:
  fast-export: quote paths with spaces

12 years agoMerge branch 'cw/no-detaching-an-unborn'
Junio C Hamano [Mon, 9 Jul 2012 16:02:00 +0000 (09:02 -0700)]
Merge branch 'cw/no-detaching-an-unborn'

"git checkout --detach", when you are still on an unborn branch,
should be forbidden, but it wasn't.

* cw/no-detaching-an-unborn:
  git-checkout: disallow --detach on unborn branch

12 years agoMerge branch 'vr/use-our-perl-in-tests'
Junio C Hamano [Mon, 9 Jul 2012 16:01:52 +0000 (09:01 -0700)]
Merge branch 'vr/use-our-perl-in-tests'

Some implementations of Perl terminates "lines" with CRLF even when
the script is operating on just a sequence of bytes.  Make sure to
use "$PERL_PATH", the version of Perl the user told Git to use, in
our tests to avoid unnecessary breakages in tests.

* vr/use-our-perl-in-tests:
  t/README: add a bit more Don'ts
  tests: enclose $PERL_PATH in double quotes
  t/test-lib.sh: export PERL_PATH for use in scripts
  t: Replace 'perl' by $PERL_PATH

12 years agoMerge branch 'mm/credential-plumbing'
Junio C Hamano [Mon, 9 Jul 2012 16:01:45 +0000 (09:01 -0700)]
Merge branch 'mm/credential-plumbing'

Expose the credential API to scripted Porcelain writers.

* mm/credential-plumbing:
  git-remote-mediawiki: update comments to reflect credential support
  git-remote-mediawiki: add credential support
  git credential fill: output the whole 'struct credential'
  add 'git credential' plumbing command

12 years agoMerge branch 'jc/maint-blame-unique-abbrev'
Junio C Hamano [Mon, 9 Jul 2012 16:01:37 +0000 (09:01 -0700)]
Merge branch 'jc/maint-blame-unique-abbrev'

"git blame" did not try to make sure the abbreviated commit object
names in its output are unique.

* jc/maint-blame-unique-abbrev:
  blame: compute abbreviation width that ensures uniqueness

12 years agoMerge branch 'jn/perl-makemaker-leading-paths'
Junio C Hamano [Mon, 9 Jul 2012 16:00:53 +0000 (09:00 -0700)]
Merge branch 'jn/perl-makemaker-leading-paths'

* jn/perl-makemaker-leading-paths:
  perl/Makefile: Fix a missing double-quote
  perl/Makefile: move "mkdir -p" to module installation loop for maintainability

12 years agoMerge branch 'rj/platform-pread-may-be-thread-unsafe'
Junio C Hamano [Mon, 9 Jul 2012 16:00:45 +0000 (09:00 -0700)]
Merge branch 'rj/platform-pread-may-be-thread-unsafe'

On Cygwin, the platform pread(3) is not thread safe, just like our
own compat/ emulation, and cannot be used in the index-pack program.

* rj/platform-pread-may-be-thread-unsafe:
  index-pack: Disable threading on cygwin

12 years agoMerge branch 'mm/config-xdg'
Junio C Hamano [Mon, 9 Jul 2012 16:00:35 +0000 (09:00 -0700)]
Merge branch 'mm/config-xdg'

Teach git to read various information from $XDG_CONFIG_HOME/git/ to allow
the user to avoid cluttering $HOME.

* mm/config-xdg:
  config: write to $XDG_CONFIG_HOME/git/config file when appropriate
  Let core.attributesfile default to $XDG_CONFIG_HOME/git/attributes
  Let core.excludesfile default to $XDG_CONFIG_HOME/git/ignore
  config: read (but not write) from $XDG_CONFIG_HOME/git/config file

12 years agogit on Mac OS and precomposed unicode
Torsten Bögershausen [Sun, 8 Jul 2012 13:50:25 +0000 (15:50 +0200)]
git on Mac OS and precomposed unicode

Mac OS X mangles file names containing unicode on file systems HFS+,
VFAT or SAMBA.  When a file using unicode code points outside ASCII
is created on a HFS+ drive, the file name is converted into
decomposed unicode and written to disk. No conversion is done if
the file name is already decomposed unicode.

Calling open("\xc3\x84", ...) with a precomposed "Ă„" yields the same
result as open("\x41\xcc\x88",...) with a decomposed "Ă„".

As a consequence, readdir() returns the file names in decomposed
unicode, even if the user expects precomposed unicode.  Unlike on
HFS+, Mac OS X stores files on a VFAT drive (e.g. an USB drive) in
precomposed unicode, but readdir() still returns file names in
decomposed unicode.  When a git repository is stored on a network
share using SAMBA, file names are send over the wire and written to
disk on the remote system in precomposed unicode, but Mac OS X
readdir() returns decomposed unicode to be compatible with its
behaviour on HFS+ and VFAT.

The unicode decomposition causes many problems:

- The names "git add" and other commands get from the end user may
  often be precomposed form (the decomposed form is not easily input
  from the keyboard), but when the commands read from the filesystem
  to see what it is going to update the index with already is on the
  filesystem, readdir() will give decomposed form, which is different.

- Similarly "git log", "git mv" and all other commands that need to
  compare pathnames found on the command line (often but not always
  precomposed form; a command line input resulting from globbing may
  be in decomposed) with pathnames found in the tree objects (should
  be precomposed form to be compatible with other systems and for
  consistency in general).

- The same for names stored in the index, which should be
  precomposed, that may need to be compared with the names read from
  readdir().

NFS mounted from Linux is fully transparent and does not suffer from
the above.

As Mac OS X treats precomposed and decomposed file names as equal,
we can

 - wrap readdir() on Mac OS X to return the precomposed form, and

 - normalize decomposed form given from the command line also to the
   precomposed form,

to ensure that all pathnames used in Git are always in the
precomposed form.  This behaviour can be requested by setting
"core.precomposedunicode" configuration variable to true.

The code in compat/precomposed_utf8.c implements basically 4 new
functions: precomposed_utf8_opendir(), precomposed_utf8_readdir(),
precomposed_utf8_closedir() and precompose_argv().  The first three
are to wrap opendir(3), readdir(3), and closedir(3) functions.

The argv[] conversion allows to use the TAB filename completion done
by the shell on command line.  It tolerates other tools which use
readdir() to feed decomposed file names into git.

When creating a new git repository with "git init" or "git clone",
"core.precomposedunicode" will be set "false".

The user needs to activate this feature manually.  She typically
sets core.precomposedunicode to "true" on HFS and VFAT, or file
systems mounted via SAMBA.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoReplace strlen() with ce_namelen()
Thomas Gummerer [Fri, 6 Jul 2012 16:07:30 +0000 (18:07 +0200)]
Replace strlen() with ce_namelen()

Replace strlen(ce->name) with ce_namelen() in a couple
of places which gives us some additional bits of
performance.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: update comments to reflect credential support
Matthieu Moy [Sun, 8 Jul 2012 16:18:28 +0000 (18:18 +0200)]
git-remote-mediawiki: update comments to reflect credential support

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: be more defensive when requests fail
Matthieu Moy [Fri, 6 Jul 2012 10:03:15 +0000 (12:03 +0200)]
git-remote-mediawiki: be more defensive when requests fail

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: more efficient 'pull' in the best case
Matthieu Moy [Fri, 6 Jul 2012 10:03:14 +0000 (12:03 +0200)]
git-remote-mediawiki: more efficient 'pull' in the best case

The only way to fetch new revisions from a wiki before this patch was to
query each page for new revisions. This is good when tracking a small set
of pages on a large wiki, but very inefficient when tracking many pages
on a wiki with little activity.

Implement a new strategy that queries the wiki for its last global
revision, queries each new revision, and filter out pages that are not
tracked.

Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: extract revision-importing loop to a function
Matthieu Moy [Fri, 6 Jul 2012 10:03:13 +0000 (12:03 +0200)]
git-remote-mediawiki: extract revision-importing loop to a function

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: refactor loop over revision ids
Matthieu Moy [Fri, 6 Jul 2012 10:03:12 +0000 (12:03 +0200)]
git-remote-mediawiki: refactor loop over revision ids

Without changing the behavior, we turn the foreach loop on an array of
revisions into a loop on an array of integer. It will be easier to
implement other strategies as they will only need to produce an array of
integer instead of a more complex data-structure.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: change return type of get_mw_pages
Matthieu Moy [Fri, 6 Jul 2012 10:03:11 +0000 (12:03 +0200)]
git-remote-mediawiki: change return type of get_mw_pages

The previous version was returning the list of pages to be fetched, but
we are going to need an efficient membership test (i.e. is the page
$title tracked), hence exposing a hash will be more convenient.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki (t9363): test 'File:' import and export
NGUYEN Kim Thuat [Fri, 6 Jul 2012 10:03:10 +0000 (12:03 +0200)]
git-remote-mediawiki (t9363): test 'File:' import and export

Signed-off-by: Pavel Volek <Pavel.Volek@ensimag.imag.fr>
Signed-off-by: NGUYEN Kim Thuat <Kim-Thuat.Nguyen@ensimag.imag.fr>
Signed-off-by: ROUCHER IGLESIAS Javier <roucherj@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: support for uploading file in test environment
Matthieu Moy [Fri, 6 Jul 2012 10:03:09 +0000 (12:03 +0200)]
git-remote-mediawiki: support for uploading file in test environment

This will be used for testing git-remote-mediawiki's import feature on a
wiki containing media files.

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki (t9362): test git-remote-mediawiki with UTF8 characters
Simon Cathebras [Fri, 6 Jul 2012 10:03:08 +0000 (12:03 +0200)]
git-remote-mediawiki (t9362): test git-remote-mediawiki with UTF8 characters

Non-ascii encoding create many particular cases when used in page
content, name, and edit/commit message. Test these cases.

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki (t9361): test git-remote-mediawiki pull and push
Guillaume Sasdy [Fri, 6 Jul 2012 10:03:07 +0000 (12:03 +0200)]
git-remote-mediawiki (t9361): test git-remote-mediawiki pull and push

This patch provides a set of tests for the pull and push fonctionnality
of git-remote-mediawiki. The actual tests are kept in a separate function
to allow further tests to re-run the same set of commands with different
push and pull strategies.

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki (t9360): test git-remote-mediawiki clone
Guillaume Sasdy [Fri, 6 Jul 2012 10:03:06 +0000 (12:03 +0200)]
git-remote-mediawiki (t9360): test git-remote-mediawiki clone

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: test environment of git-remote-mediawiki
Guillaume Sasdy [Fri, 6 Jul 2012 10:03:05 +0000 (12:03 +0200)]
git-remote-mediawiki: test environment of git-remote-mediawiki

In order to test git-remote-mediawiki, a set of functions is needed to
manage a MediaWiki: edit a page, remove a page, fetch a page, fetch all
pages on a given wiki.

A few helper function are also provided to check the content of
directories.

In addition, this patch provides Makefiles to execute tests.
See the README file for more details.

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit-remote-mediawiki: scripts to install, delete and clear a MediaWiki
Guillaume Sasdy [Fri, 6 Jul 2012 10:03:04 +0000 (12:03 +0200)]
git-remote-mediawiki: scripts to install, delete and clear a MediaWiki

install_wiki.sh allows the user to install a MediaWiki instance in a
single shell command. Like "git instaweb", it configures and launches
lighttpd without requiring root priviledges. To simplify database
management, it uses SQLite, which doesn't require a running daemon, and
allows reseting the database by simply replacing a single file. This
allows install_wiki to also defines a function wiki_reset which clear all
content of the previously created wiki, which will be very useful to run
several indepenant tests on the same wiki.

Note those functionnalities are made to be used from the user command
line in the directory git/contrib/mw-to-git/t/

Signed-off-by: Simon CATHEBRAS <Simon.Cathebras@ensimag.imag.fr>
Signed-off-by: Julien KHAYAT <Julien.Khayat@ensimag.imag.fr>
Signed-off-by: Simon Perrat <simon.perrat@ensimag.imag.fr>
Signed-off-by: Charles ROUSSEL <Charles.Roussel@ensimag.imag.fr>
Signed-off-by: Guillaume SASDY <Guillaume.Sasdy@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: refactor diffOpts calculation
Gary Gibbons [Wed, 4 Jul 2012 13:40:19 +0000 (09:40 -0400)]
git p4: refactor diffOpts calculation

P4Submit.applyCommit()

To avoid recalculating the same diffOpts for each commit, move it
out of applyCommit() and into the top-level run().  Also fix a bug
in that code which interpreted the value of detectRenames as a
string rather than as a boolean.

[pw: fix documentation, rearrange code a bit]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: notice Jobs lines in git commit messages
Pete Wyckoff [Wed, 4 Jul 2012 13:34:20 +0000 (09:34 -0400)]
git p4: notice Jobs lines in git commit messages

P4 has a feature called "jobs" that allows linking changes
to a bug tracking system or other tasks.  When submitting
code, a job name can be specified to mark that this change
is associated with a particular job.

Teach git-p4 to find an optional "Jobs:" line in git commit
messages and use them to make a Jobs section in the p4
change specifitation.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4 test: refactor marshal_dump
Pete Wyckoff [Wed, 4 Jul 2012 13:34:19 +0000 (09:34 -0400)]
git p4 test: refactor marshal_dump

This function will be useful in future tests.  Move it to
the git-p4 test library.  Let it accept an optional argument
to pick a certain marshaled object out of the input stream.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogit p4: remove unused P4Submit interactive setting
Pete Wyckoff [Wed, 4 Jul 2012 13:34:18 +0000 (09:34 -0400)]
git p4: remove unused P4Submit interactive setting

The code is unused.  Delete.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agovcs-svn: allow 64-bit Prop-Content-Length
Jonathan Nieder [Fri, 6 Jul 2012 03:47:47 +0000 (22:47 -0500)]
vcs-svn: allow 64-bit Prop-Content-Length

Currently the vcs-svn/ library only pays attention to the presence of
the Prop-Content-Length field and doesn't care about its value, but
some day we might care about the value.  Parse it as an off_t instead
of arbitrarily limiting to 32 bits for intuitiveness.

So now you can import from a dump with more than 2 GiB of properties
for a node.  In practice that isn't likely to happen often, and this
is mostly meant as a cleanup.

Based-on-patch-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: suppress a signed/unsigned comparison warning
Jonathan Nieder [Fri, 6 Jul 2012 03:21:09 +0000 (22:21 -0500)]
vcs-svn: suppress a signed/unsigned comparison warning

All callers pass a nonnegative delta_len, so the code is already safe.
Add an assertion to ensure that remains so and add a cast to keep
clang and gcc -Wsign-compare from worrying.

Reported-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: suppress a signed/unsigned comparison warning
David Barr [Thu, 31 May 2012 14:41:29 +0000 (00:41 +1000)]
vcs-svn: suppress a signed/unsigned comparison warning

The preceding code checks that view->max_off is nonnegative and
(off + width) fits in an off_t, so this code is already safe.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: suppress signed/unsigned comparison warnings
David Barr [Thu, 31 May 2012 14:41:29 +0000 (00:41 +1000)]
vcs-svn: suppress signed/unsigned comparison warnings

These are already safe because both sides of the comparison are
nonnegative.

This would normally not be important because Git is not -Wsign-compare
clean anyway, but we like to keep the vcs-svn/ lib to a higher
standard for convenience using it in other projects.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: use strstr instead of memmem
David Barr [Thu, 31 May 2012 14:41:28 +0000 (00:41 +1000)]
vcs-svn: use strstr instead of memmem

memmem is a GNU extension.

Avoiding it makes the code clearer and makes it easier for projects
that don't share git's compat/ code, such as the standalone
svn-dump-fast-export project, to reuse the vcs-svn/ library.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: use constcmp instead of prefixcmp
David Barr [Thu, 31 May 2012 14:41:27 +0000 (00:41 +1000)]
vcs-svn: use constcmp instead of prefixcmp

Since the length of t is already known, we can simplify a little by
using memcmp() instead of strncmp() to carry out a prefix comparison.
All nearby code already does this.

Noticed in the standalone svn-dump-fast-export project which has not
needed to implement prefixcmp() yet.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: simplify cleanup in apply_one_window
David Barr [Thu, 31 May 2012 14:41:26 +0000 (00:41 +1000)]
vcs-svn: simplify cleanup in apply_one_window

Currently the cleanup code looks like this:

free resources
return 0;
 error_out:
free resources
return -1;

Avoid duplicating the "free resources" part by keeping the return
value in a variable and sharing code between the success and
exceptional case:

ret = 0;
 out:
free resources
return ret;

Noticed in the svn-dump-fast-export project, where using the error()
macro in void context produces a warning.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: avoid self-assignment in dummy initialization of pre_off
David Barr [Thu, 31 May 2012 14:41:25 +0000 (00:41 +1000)]
vcs-svn: avoid self-assignment in dummy initialization of pre_off

Without this change, clang complains:

 vcs-svn/svndiff.c:298:3: warning: Assigned value is garbage or undefined
                 off_t pre_off = pre_off; /* stupid GCC... */
                 ^               ~~~~~~~

This code uses an old and common idiom for suppressing an
"uninitialized variable" warning, and clang is wrong to warn about it.
The idiom tells the compiler to leave the variable uninitialized,
which saves a few bytes of code size, and, more importantly, allows
valgrind to check at runtime that the variable is properly initialized
by the time it is used.

But MSVC and clang do not know that idiom, so let's avoid it in
vcs-svn/ code.

Initialize pre_off to -1, a recognizably meaningless value, to allow
future code changes that cause pre_off to be used before it is
initialized to be caught early.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agovcs-svn: drop no-op reset methods
David Barr [Thu, 31 May 2012 14:41:30 +0000 (00:41 +1000)]
vcs-svn: drop no-op reset methods

Since v1.7.5~42^2~6 (vcs-svn: remove buffer_read_string)
buffer_reset() does nothing thus fast_export_reset() also.

Signed-off-by: David Barr <davidbarr@google.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
12 years agol10n: zh_CN.po: translate 29 new messages
Jiang Xin [Wed, 4 Jul 2012 09:20:34 +0000 (17:20 +0800)]
l10n: zh_CN.po: translate 29 new messages

Translate 29 new messages came from git.pot update in 11b9017
(l10n: Update git.pot (29 new messages))

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
12 years agot3404: make test 57 work with dash and others
Michael J Gruber [Wed, 4 Jul 2012 11:32:04 +0000 (13:32 +0200)]
t3404: make test 57 work with dash and others

The construct

VAR=value test_must_fail command args

works only for some shells (such as bash) but not others (such as dash)
because VAR=value does not end up in the environment for command when it
is called by the shell function test_must_fail. That is why we explicitly
set and export variable in a subshell, i.e.

(
VAR=value &&
export VAR &&
test_must_fail command args
)

in most places already, bar the newly introduced 57 from b64b7fe
(Add tests for rebase -i --root without --onto, 2012-06-26).

Make test 57 use that construct also.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agol10n: de.po: translate 29 new messages
Ralf Thielow [Tue, 3 Jul 2012 16:02:11 +0000 (18:02 +0200)]
l10n: de.po: translate 29 new messages

Translate 29 new messages came from git.pot update
in 11b9017 (l10n: Update git.pot (29 new messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
12 years agogit-remote-mediawiki: improve support for non-English Wikis
Matthieu Moy [Wed, 4 Jul 2012 12:53:36 +0000 (14:53 +0200)]
git-remote-mediawiki: improve support for non-English Wikis

Mediafiles can live in namespaces with names different from Image
and File. While at it, rework the code to make it simpler and easier
to read.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFourth batch for 1.7.12
Junio C Hamano [Thu, 5 Jul 2012 06:48:37 +0000 (23:48 -0700)]
Fourth batch for 1.7.12

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'nd/clone-single-fix'
Junio C Hamano [Thu, 5 Jul 2012 06:41:41 +0000 (23:41 -0700)]
Merge branch 'nd/clone-single-fix'

"git clone --single-branch" to clone a single branch did not limit
the cloning to the specified branch.

* nd/clone-single-fix:
  clone: fix ref selection in --single-branch --branch=xxx

12 years agoMerge branch 'th/diff-no-index-fixes'
Junio C Hamano [Thu, 5 Jul 2012 06:40:38 +0000 (23:40 -0700)]
Merge branch 'th/diff-no-index-fixes'

"git diff --no-index" did not correctly handle relative paths and
did not give correct exit codes when run under "--quiet" option.

* th/diff-no-index-fixes:
  diff-no-index: exit(1) if 'diff --quiet <repo file> <external file>' finds changes
  diff: handle relative paths in no-index

12 years agoMerge branch 'hv/remote-end-hung-up'
Junio C Hamano [Thu, 5 Jul 2012 06:40:11 +0000 (23:40 -0700)]
Merge branch 'hv/remote-end-hung-up'

When we get disconnected while expecting a response from the remote
side because authentication failed, we issued an error message "The
remote side hung up unexpectedly."

Give hint that it may be a permission problem in the message when we
can reasonably suspect it.

* hv/remote-end-hung-up:
  remove the impression of unexpectedness when access is denied

12 years agoUpdate Swedish translation (1095t0f0u)
Peter Krefting [Wed, 4 Jul 2012 18:34:21 +0000 (19:34 +0100)]
Update Swedish translation (1095t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>