Merge branch 'ms/git-svn-1.7' into next

A series by Michael Schwern via Eric to update git-svn to revamp the
way URLs are internally passed around, to make it work with SVN 1.7.

* ms/git-svn-1.7:
  git-svn: remove ad-hoc canonicalizations
  git-svn: canonicalize newly-minted URLs
  git-svn: introduce add_path_to_url function
  git-svn: canonicalize earlier
  git-svn: replace URL escapes with canonicalization
  git-svn: attempt to mimic SVN 1.7 URL canonicalization
  t9107: fix typo
  t9118: workaround inconsistency between SVN versions
  Git::SVN{,::Ra}: canonicalize earlier
  git-svn: path canonicalization uses SVN API
  Git::SVN::Utils: remove irrelevant comment
  git-svn: add join_paths() to safely concatenate paths
  git-svn: factor out _collapse_dotdot function
  git-svn: use SVN 1.7 to canonicalize when possible
  git-svn: move canonicalization to Git::SVN::Utils
  use Git::SVN{,::RA}->url accessor globally
  use Git::SVN->path accessor globally
  Git::SVN::Ra: use accessor for URLs
  Git::SVN: use accessor for URLs internally
  Git::SVN: use accessors internally for path
difftool: silence warning

Silence a warning given when running git difftool --dir-diff and
there are no changes.

This is because command_oneline returns undef when the command has no
output, not ''.

Signed-off-by: Ross Lagerwall <rosslagerwall@gmail.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'da/difftool-updates' into next

(Originally merged to 'next' on 2012-08-10)

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

Will merge to 'master' as part of the second batch.

* da/difftool-updates:
  difftool: silence warning
Merge branch 'master' into next
Merge branch 'jk/blame-tree' into HEAD

* jk/blame-tree:
  blame-tree wip
Merge branch 'jk/builtin-attr' into HEAD

* jk/builtin-attr:
  attr: map builtin userdiff drivers to well-known extensions
Merge branch 'jk/bundle-fetch' into HEAD

* jk/bundle-fetch:
  clone: give advice on how to resume a failed clone
  remote-curl: resume interrupted bundle transfers
  remote-curl: show progress for bundle downloads
  progress: allow pure-throughput progress meters
  remote-curl: try base $URL after $URL/info/refs
  remote-curl: auto-detect bundles when fetching refs
  remote-curl: free "discovery" object
  bundle: add is_bundle_buf helper
  transport: factor out bundle to ref list conversion
  remote-curl: use http callback for requesting refs
  http: add a public function for arbitrary-callback request
  http: refactor http_request function
  http: turn off curl signals
  t/lib-httpd: check for NO_CURL
Merge branch 'jk/cache-patch-id' into HEAD

* jk/cache-patch-id:
  cache patch ids on disk
  cherry: read default config
  implement metadata cache subsystem
  map: implement persistent maps
  decorate: use "map" for the underlying implementation
  fast-export: use object to uint32 map instead of "decorate"
  map: add helper functions for objects as keys
  implement generic key/value map
Merge branch 'jk/cache-renames' into HEAD

* jk/cache-renames:
  diff: optionally use rename cache
  implement rename cache

Conflicts:
	Makefile
	metadata-cache.c
	metadata-cache.h
Merge branch 'jk/child-cleanup' into HEAD

* jk/child-cleanup:
  send-pack: kill pack-objects helper on signal or exit
Merge branch 'jk/clone-file-local' into HEAD

* jk/clone-file-local:
  clone: send diagnostic messages to stderr
Merge branch 'jk/config-sources' into HEAD

* jk/config-sources:
  show sources of config options (WIP)
Merge branch 'jk/config-warnings' into HEAD

* jk/config-warnings:
  attr: warn on inaccessible attribute files
  gitignore: report access errors of exclude files
  config: warn on inaccessible files
Merge branch 'jk/deleted-branch-reflogs' into HEAD

* jk/deleted-branch-reflogs:
  add tests for reflogs of deleted refs
  teach sha1_name to look in graveyard reflogs
  retain reflogs for deleted refs
Merge branch 'jk/describe' into HEAD

* jk/describe:
  describe WIP
Merge branch 'jk/diff-null-sha1' into HEAD

* jk/diff-null-sha1:
  fsck: detect null sha1 in tree entries
  do not write null sha1s to on-disk index
  diff: do not use null sha1 as a sentinel value
Merge branch 'jk/dumpstat' into HEAD

* jk/dumpstat:
  zeromq dumpstat implementation
  dumpstat-ify upload-pack
  dumpstat to fd
  dumpstat

Conflicts:
	upload-pack.c
Merge branch 'jk/external-odb' into HEAD

* jk/external-odb:
  fetch-pack: advertise external odb blobs
  external odb foreach
  external odb work in progress

Conflicts:
	builtin/fetch-pack.c
Merge branch 'jk/fast-commit-list' into HEAD

* jk/fast-commit-list:
  fetch-pack: use priority queue for mark_complete
  commit: add infrastructure for priority queues of commits
  basic priority queue implementation
Merge branch 'jk/fetch-tracking' into HEAD

* jk/fetch-tracking:
  fetch tracking wip