From: Junio C Hamano Date: Sun, 21 Jun 2009 06:48:46 +0000 (-0700) Subject: Merge branch 'maint-1.6.2' into maint X-Git-Tag: v1.6.3.3~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/3ba4f3a9fc68ba4c5a0064107e8993c5fc5b684f?hp=-c Merge branch 'maint-1.6.2' into maint * maint-1.6.2: git-show-ref.txt: remove word and make consistent git-svn documentation: fix typo in 'rebase vs. pull/merge' section use xstrdup, not strdup in ll-merge.c --- 3ba4f3a9fc68ba4c5a0064107e8993c5fc5b684f diff --combined Documentation/git-svn.txt index 1c40894669,d8bf7bfc30..74be8435cc --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@@ -85,10 -85,6 +85,10 @@@ COMMAND specified, the prefix must include a trailing slash. Setting a prefix is useful if you wish to track multiple projects that share a common repository. +--ignore-paths=;; + When passed to 'init' or 'clone' this regular expression will + be preserved as a config key. See 'fetch' for a description + of '--ignore-paths'. 'fetch':: Fetch unfetched revisions from the Subversion remote we are @@@ -101,9 -97,6 +101,9 @@@ makes 'git-log' (even without --date=local) show the same times that `svn log` would in the local timezone. +--parent;; + Fetch only from the SVN parent of the current HEAD. + This doesn't interfere with interoperating with the Subversion repository you cloned from, but if you wish for your local Git repository to be able to interoperate with someone else's local Git @@@ -111,25 -104,17 +111,25 @@@ repository, either don't use this optio the same local timezone. --ignore-paths=;; - This allows one to specify Perl regular expression that will + This allows one to specify a Perl regular expression that will cause skipping of all matching paths from checkout from SVN. - Examples: + The '--ignore-paths' option should match for every 'fetch' + (including automatic fetches due to 'clone', 'dcommit', + 'rebase', etc) on a given repository. + +config key: svn-remote..ignore-paths + + If the ignore-paths config key is set and the command + line option is also given, both regular expressions + will be used. - --ignore-paths="^doc" - skip "doc*" directory for every fetch. +Examples: - --ignore-paths="^[^/]+/(?:branches|tags)" - skip "branches" - and "tags" of first level directories. + --ignore-paths="^doc" - skip "doc*" directory for every + fetch. - Regular expression is not persistent, you should specify - it every time when fetching. + --ignore-paths="^[^/]+/(?:branches|tags)" - skip + "branches" and "tags" of first level directories. 'clone':: Runs 'init' and 'fetch'. It will automatically create a @@@ -400,8 -385,7 +400,8 @@@ config key: svn.authorsfil -q:: --quiet:: - Make 'git-svn' less verbose. + Make 'git-svn' less verbose. Specify a second time to make it + even less verbose. --repack[=]:: --repack-flags=:: @@@ -615,7 -599,7 +615,7 @@@ pulled or merged from. This is becaus If you use `git svn set-tree A..B` to commit several diffs and you do not have the latest remotes/git-svn merged into my-branch, you should use `git svn rebase` to update your work branch instead of `git pull` or - `git merge`. `pull`/`merge' can cause non-linear history to be flattened + `git merge`. `pull`/`merge` can cause non-linear history to be flattened when committing into SVN, which can lead to merge commits reversing previous commits in SVN. @@@ -688,14 -672,14 +688,14 @@@ listed below are allowed ------------------------------------------------------------------------ [svn-remote "project-a"] url = http://server.org/svn + fetch = trunk/project-a:refs/remotes/project-a/trunk branches = branches/*/project-a:refs/remotes/project-a/branches/* tags = tags/*/project-a:refs/remotes/project-a/tags/* - trunk = trunk/project-a:refs/remotes/project-a/trunk ------------------------------------------------------------------------ -Keep in mind that the '*' (asterisk) wildcard of the local ref +Keep in mind that the '\*' (asterisk) wildcard of the local ref (right of the ':') *must* be the farthest right path component; -however the remote wildcard may be anywhere as long as it's own +however the remote wildcard may be anywhere as long as it's an independent path component (surrounded by '/' or EOL). This type of configuration is not automatically created by 'init' and should be manually entered with a text-editor or using 'git-config'. diff --combined ll-merge.c index 81c02ad053,9723f3a5dc..f7c2bc9278 --- a/ll-merge.c +++ b/ll-merge.c @@@ -219,7 -219,7 +219,7 @@@ static int ll_ext_merge(const struct ll close(fd); bad: for (i = 0; i < 3; i++) - unlink(temp[i]); + unlink_or_warn(temp[i]); strbuf_release(&cmd); return status; } @@@ -238,7 -238,7 +238,7 @@@ static int read_merge_config(const cha if (!strcmp(var, "merge.default")) { if (value) - default_ll_merge = strdup(value); + default_ll_merge = xstrdup(value); return 0; } @@@ -272,7 -272,7 +272,7 @@@ if (!strcmp("name", ep)) { if (!value) return error("%s: lacks value", var); - fn->description = strdup(value); + fn->description = xstrdup(value); return 0; } @@@ -295,14 -295,14 +295,14 @@@ * file named by %A, and signal that it has done with zero exit * status. */ - fn->cmdline = strdup(value); + fn->cmdline = xstrdup(value); return 0; } if (!strcmp("recursive", ep)) { if (!value) return error("%s: lacks value", var); - fn->recursive = strdup(value); + fn->recursive = xstrdup(value); return 0; }