summaryrefslogtreecommitdiff
path: root/git-svn.perl
Commit message (Collapse)AuthorAgeFilesLines
...
* | git-svn.perl: fix a false-positive in the "already exists" testSteven Walter2012-02-211-17/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | open_or_add_dir checks to see if the directory already exists or not. If it already exists and is not a directory, then we fail. However, open_or_add_dir did not previously account for the possibility that the path did exist as a file, but is deleted in the current commit. In order to prevent this legitimate case from failing, open_or_add_dir needs to know what files are deleted in the current commit. Unfortunately that information has to be plumbed through a couple of layers. Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn.perl: perform deletions before anything elseSteven Walter2012-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | If we delete a file and recreate it as a directory in a single commit, we have to tell the server about the deletion first or else we'll get "RA layer request failed: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request" Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: Fix time zone in --localtimeWei-Yin Chen (陳威尹)2012-02-211-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use numerical form of time zone to replace alphabetic time zone abbreviation generated by "%Z". "%Z" is not portable and contain ambiguity for many areas. For example, CST could be "Central Standard Time" (GMT-0600) and "China Standard Time" (GMT+0800). Alphabetic time zone abbreviation is meant for human readability, not for specifying a time zone for machines. Failed case can be illustrated like this in linux shell: > echo $TZ Asia/Taipei > date +%Z CST > env TZ=`date +%Z` date Mon Dec 19 06:03:04 CST 2011 > date Mon Dec 19 14:03:04 CST 2011 [ew: fixed bad package reference inside Git::SVN::Log] Signed-off-by: Wei-Yin Chen (陳威尹) <chen.weiyin@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: un-break "git svn rebase" when log.abbrevCommit=trueÆvar Arnfjörð Bjarmason2012-02-211-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change git-svn to use git-rev-list(1) instead of git-log(1) since the latter is porcelain that'll cause "git svn rebase" to fail completely if log.abbrevCommit is set to true in the configuration. Without this patch the code will fail to parse a SHA1, and then just spew a bunch of "Use of uninitialized value $hash in string eq" warnings at "if ($c && $c eq $hash) { ..." and never do anything useful. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Helped-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: remove redundant porcelain option to rev-listÆvar Arnfjörð Bjarmason2012-02-211-1/+1
| | | | | | | | | | | | | | | | | | Change an invocation of git-rev-list(1) to not use --no-color, git-rev-list(1) will always ignore that option and the --color option, so there's no need to pass it. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn.perl: close the edit for propedits even with no modsSteven Walter2011-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* | svn: Quote repository root in regex matchTed Percival2011-11-011-2/+2
| | | | | | | | | | | | | | | | | | Fixes a problem matching repository URLs, especially those with a '+' in the URL, such as svn+ssh:// URLs. Parts of the URL were interpreted as special characters by the regex matching. Signed-off-by: Ted Percival <ted.percival@quest.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | Merge branch 'pt/mingw-misc-fixes'Junio C Hamano2011-10-181-8/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * pt/mingw-misc-fixes: t9901: fix line-ending dependency on windows mingw: ensure sockets are initialized before calling gethostname mergetools: use the correct tool for Beyond Compare 3 on Windows t9300: do not run --cat-blob-fd related tests on MinGW git-svn: On MSYS, escape and quote SVN_SSH also if set by the user t9001: do not fail only due to CR/LF issues t1020: disable the pwd test on MinGW
| * | git-svn: On MSYS, escape and quote SVN_SSH also if set by the userSebastian Schuberth2011-10-141-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While GIT_SSH does not require any escaping / quoting (e.g. for paths containing spaces), SVN_SSH requires it due to its use in a Perl script. Previously, SVN_SSH has only been escaped and quoted automatically if it was unset and thus derived from GIT_SSH. For user convenience, do the escaping and quoting also for a SVN_SSH set by the user. This way, the user is able to use the same unescaped and unquoted syntax for GIT_SSH and SVN_SSH. Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | git-svn: Allow certain refs to be ignoredMichael Olson2011-10-161-5/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a new --ignore-refs option which specifies a regex of refs to ignore while importing svn history. This is a useful supplement to the --ignore-paths option, as that option only operates on the contents of branches and tags, not the branches and tags themselves. Signed-off-by: Michael Olson <mwolson@gnu.org> Acked-by: Eric Wong <normalperson@yhbt.net>
* | | git svn dcommit: new option --interactive.Frédéric Heitzmann2011-10-161-1/+74
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow the user to check the patch set before it is commited to SVN. It is then possible to accept/discard one patch, accept all, or quit. This interactive mode is similar with 'git send email' behaviour. However, 'git svn dcommit' returns as soon as one patch is discarded. Part of the code was taken from git-send-email.perl (see 'ask' function) Tests several combinations of potential answers to 'git svn dcommit --interactive'. For each of them, test whether patches were commited to SVN or not. Thanks-to Eric Wong <normalperson@yhbt.net> for the initial idea. Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Frédéric Heitzmann <frederic.heitzmann@gmail.com>
* | use -h for synopsis and --help for manpage consistentlycb/do-not-pretend-to-hijack-long-helpClemens Buchacher2011-10-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | A few scripted Porcelain implementations pretend as if the routine to show their own help messages are triggered upon "git cmd --help", but a command line parser of "git" will hijack such a request and shows the manpage for the cmd subcommand. Leaving the code to handle such input is simply misleading. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: teach git-svn to populate svn:mergeinfoBryan Jacobs2011-09-131-0/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow git-svn to populate the svn:mergeinfo property automatically in a narrow range of circumstances. Specifically, when dcommitting a revision with multiple parents, all but (potentially) the first of which have been committed to SVN in the same repository as the target of the dcommit. In this case, the merge info is the union of that given by each of the parents, plus all changes introduced to the first parent by the other parents. In all other cases where a revision to be committed has multiple parents, cause "git svn dcommit" to raise an error rather than completing the commit and potentially losing history information in the upstream SVN repository. This behavior is disabled by default, and can be enabled by setting the svn.pushmergeinfo config option. [ew: minor style changes and manpage merge fix] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Bryan Jacobs <bjacobs@woti.com>
* | git-svn: Teach dcommit --mergeinfo to handle multiple linesBryan Jacobs2011-09-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "svn dcommit --mergeinfo" replaces the svn:mergeinfo property in an upstream SVN repository with the given text. The svn:mergeinfo property may contain commits originating on multiple branches, separated by newlines. Cause space characters in the mergeinfo to be replaced by newlines, allowing a user to create history representing multiple branches being merged into one. Update the corresponding documentation and add a test for the new functionality. Signed-off-by: Bryan Jacobs <bjacobs@woti.com> Acked-by: Sam Vilain <sam@vilain.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: fix fetch with moved path when using rewriteRootEric Wong2011-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | The matching step in commit 3235b7053c45a734c1cdf9b117bda68b7ced29c9 did not properly account for users of the "rewriteRoot" configuration parameter. ref: <CANWsHyfHtr0EaJtNsDK9UTcmb_AbLg-1jUA-0uWJ-nEeNosb7w@mail.gmail.com> Suggested-by: H Krishnan <hetchkay@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: New flag to emulate empty directoriesRay Chen2011-09-011-4/+144
|/ | | | | | | | | | | | | Adds a --preserve-empty-dirs flag to the clone operation that will detect empty directories in the remote Subversion repository and create placeholder files in the corresponding local Git directories. This allows "empty" directories to exist in the history of a Git repository. Also adds the --placeholder-file flag to control the name of any placeholder files created. Default value is ".gitignore". Signed-off-by: Ray Chen <rchen@cs.umd.edu> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: Correctly handle root commits in mergeinfo rangesMichael Haggerty2011-06-281-2/+6
| | | | | | | | | | | If the bottom of a mergeinfo range is a commit that maps to a git root commit, then it doesn't have a parent. In such a case, use git commit range "$top_commit" rather than "$bottom_commit^..$top_commit". [ew: line-wrap at 80 columns] Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: Disambiguate rev-list arguments to improve error messageMichael Haggerty2011-06-281-2/+2
| | | | | | | | | Add "--" in the "git rev-list" command line so that if there is a bug and the revisions cannot be found, the error message is a bit less cryptic. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Acked-by: Eric Wong <normalperson@yhbt.net>
* Merge branch 'maint'Junio C Hamano2011-05-201-1/+1
|\ | | | | | | | | * maint: git-svn: Fix git svn log --show-commit
| * git-svn: Fix git svn log --show-commitMichael J Gruber2011-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git svn log --show-commit had no tests and, consequently, no attention by the author of b1b4755 (git-log: put space after commit mark, 2011-03-10) who kept git svn log working only without --show-commit. Introduce a test and fix it. Reported-by: Bernt Hansen <bernt@norang.ca> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'mh/git-svn-automkdirs'Junio C Hamano2011-04-271-2/+15
|\ \ | |/ |/| | | | | * mh/git-svn-automkdirs: git-svn: add an option to skip the creation of empty directories
| * git-svn: add an option to skip the creation of empty directoriesMichael Haggerty2011-04-011-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | "git svn mkdirs" (which creates empty directories in the current working copy) can be very slow and is often unnecessary. Provide a config file option "svn-remote.<name>.automkdirs" that prevents empty directories from being created automatically. (They are still created if "git svn mkdirs" is invoked explicitly.) Based-on-patch-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: Cache results of running the executable "git config"James Y Knight2011-04-091-0/+5
| | | | | | | | | | | | | | | | Running programs is not cheap! Signed-off-by: James Y Knight <jknight@itasoftware.com> Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: Add a svn-remote.<name>.pushurl config keyAlejandro R. Sedeño2011-04-091-3/+16
|/ | | | | | | | | | | | | | | | | | | Similar to the 'remote.<name>.pushurl' config key for git remotes, 'pushurl' is designed to be used in cases where 'url' points to an SVN repository via a read-only transport, to provide an alternate read/write transport. It is assumed that both keys point to the same repository. The 'pushurl' key is distinct from the 'commiturl' key in that 'commiturl' is a full svn path while 'pushurl' (like 'url') is a base path. 'commiturl' takes precendece over 'pushurl' in cases where either might be used. The 'pushurl' is used by git-svn's dcommit and branch commands. Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu> Reviewed-by: James Y Knight <jknight@itasoftware.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-log: put space after commit markMichael J Gruber2011-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | Currently, commit marks (left, right, boundary, cherry) are output right before the commit sha1, which makes it difficult to copy sha1s. Sample output for "git log --oneline --cherry": =049c269 t6007: test rev-list --cherry Change this to = 049c269 t6007: test rev-list --cherry which matches exactly the current output of "git log --graph". Leave "git rev-list" output as is (no space) so that they do not break. Adjust "git-svn" which uses "git log --pretty=raw --boundary". Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-svn: allow the mergeinfo property to be setSteven Walter2010-12-101-1/+14
| | | | | | | | | | As a first step towards preserving merges across dcommit, we need a mechanism to update the svn:mergeinfo property. [ew: fixed bashism and style issues in test case] Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* Merge branch 'ab/require-perl-5.8'Junio C Hamano2010-10-261-0/+1
|\ | | | | | | | | | | * ab/require-perl-5.8: perl: use "use warnings" instead of -w perl: bump the required Perl version to 5.8 from 5.6.[21]
| * perl: bump the required Perl version to 5.8 from 5.6.[21]Ævar Arnfjörð Bjarmason2010-09-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Formalize our dependency on perl 5.8, bumped from 5.6.[12]. We already used the three-arg form of open() which was introduced in 5.6.1, but t/t9700/test.pl explicitly depended on 5.6.2. However git-add--interactive.pl has been failing on the 5.6 line since it was introduced in v1.5.0-rc0~12^2~2 back in 2006 due to this open syntax: sub run_cmd_pipe { my $fh = undef; open($fh, '-|', @_) or die; return <$fh>; } Which when executed dies on "Can't use an undefined value as filehandle reference". Several of our tests also fail on 5.6 (even more when compiled with NO_PERL_MAKEMAKER=1): t2016-checkout-patch.sh t3904-stash-patch.sh t3701-add-interactive.sh t7105-reset-patch.sh t7501-commit.sh t9700-perl-git.sh Our code is bitrotting on 5.6 with no-one interested in fixing it, and pinning us to such an ancient release of Perl is keeping us from using useful features introduced in the 5.8 release. The 5.6 series is now over 10 years old, and the 5.6.2 maintenance release almost 7. 5.8 on the other hand is more than 8 years old. All the modern Unix-like operating systems have now upgraded to it or a later version, and 5.8 packages are available for old IRIX, AIX Solaris and Tru64 systems. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Tor Arntsen <tor@spacetec.no> Acked-by: Randal L. Schwartz <merlyn@stonehenge.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: fix processing of decorated commit hashesMathias Lafeldt2010-09-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The function working_head_info() fails to parse commit hashes if they are decorated (i.e. log.decorate is true), causing dcommit, rebase, and other vital git-svn commands to malfunction. This patch disables decorated log output with --no-decorate. [ew: wrapped long line] Signed-off-by: Mathias Lafeldt <misfire@debugon.org> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: check_cherry_pick should exclude commits already in our historySteven Walter2010-09-241-1/+3
|/ | | | | | | | | | | | | The merge-base between @$parents and $merge_tip may have been reached through a merge commit. This means that some commits that are ancestors of @$parents will not be ancestors of $merge_base. The mergeinfo property will not list commits that are ancestors of @$parents, so we need to explicitly exclude them. [ew: squashed and cleaned up test case from Steven] Signed-off-by: Steven Walter <stevenrwalter@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: fix fetch with deleted tagDavid D. Kilzer2010-08-151-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently git-svn assumes that two tags created from the same revision will have the same repo url, so it uses a ref to the tag without checking that its url matches the current url. This causes issues when fetching an svn repo where a tag was created, deleted, and then recreated under the following circumstances: - Both tags were copied from the same revision. - Both tags had the same name. - Both tags had different repository paths. - [Optional] Both tags have a file with the same name but different content. When all four conditions are met, a checksum mismatch error occurs because the content of two files with the same path differs (see t/t9155--git-svn-fetch-deleted-tag.sh): Checksum mismatch: ChangeLog 065854.... expected: ce771b.... got: 9563fd.... When only the first three conditions are met, no error occurs but the tag in git matches the first (deleted) tag instead of the last (most recent) tag (see t/t9156-git-svn-fetch-deleted-tag-2.sh). The fix is to verify that the repo url for the ref matches the current url. If the urls do not match, then a "tail" is grown on the tag name by appending a dash and rechecking the new ref's repo url until either a matching repo url is found or a new tag is created. Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: fix regex to remove "tail" from svn tagsDavid D. Kilzer2010-08-151-1/+1
| | | | | | | | | | | Fix a regular expression used to remove the revision from the end of an svn tag or branch name. The regex did not account for any "tail" (dashes) that may have been added to the end of the tag name (which first appeared in v1.4.1-rc2~11). If not fixed, tags with names like "tags/mytag@5--@2" may be created. Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* git svn: URL-decode left-hand side of svn refspecSteven Walter2010-08-051-0/+2
| | | | | | | | This change allows git-svn to handle an URL with colons in the path [ew: rewritten to use uri_decode() function] Signed-off-by: Eric Wong <normalperson@yhbt.net>
* git svn: fix dcommit to work with touched filesDavid D. Kilzer2010-08-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The dcommit command fails if an otherwise unmodified file has been touched in the working directory: Cannot dcommit with a dirty index. Commit your changes first, or stash them with `git stash'. This happens because "git diff-index" reports a difference between the index and the filesystem: :100644 100644 d00491...... 000000...... M file The fix is to run "git update-index --refresh" before "git diff-index" as is done in git-rebase and git-rebase--interactive before "git diff-files". This changes dcommit to display a list of modified files before exiting. Also add a similar test case for "git svn rebase". [ew: rearranged commit message subject] Signed-off-by: David D. Kilzer <ddkilzer@kilzer.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* git svn: add an option to recode pathnamesDmitry Statyvka2010-07-301-0/+9
| | | | | | | | | | | | | Introduce a new option 'svn.pathnameencoding' that instructs git svn to recode pathnames to a given encoding. It can be used by windows users and by those who work in non-utf8 locales to avoid corrupted file names with non-ascii characters. [rp: renamed the option and added manpage documentation] Signed-off-by: Dmitry Statyvka <dstatyvka@tmsoft-ltd.kiev.ua> Signed-off-by: Robert Pollak <robert.pollak@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: write memoized data explicitly to avoid Storable bugSergey Vlasov2010-07-191-0/+16
| | | | | | | | | | | | | | | | | Apparently using the Storable module during global destruction is unsafe - there is a bug which can cause segmentation faults: http://rt.cpan.org/Public/Bug/Display.html?id=36087 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482355 The persistent memoization support introduced in commit 8bff7c538 relied on global destruction to write cached data, which was leading to segfaults in some Perl configurations. Calling Memoize::unmemoize in the END block forces the cache writeout to be performed earlier, thus avoiding the bug. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Acked-by: Eric Wong <normalperson@yhbt.net>
* git svn: avoid unnecessary '/' in paths for SVNEric Wong2010-06-141-0/+3
| | | | | | | | | | svn:// servers are more picky regarding redundant slashes than file:// and http(s)://-backed respositories. Since the last commit, we avoid putting unnecessary slashes in $GIT_CONFIG, but this doesn't help users who are already set up that way. Signed-off-by: Eric Wong <normalperson@yhbt.net>
* git-svn: strip off leading slashes on --trunk argumentJonathan Nieder2010-06-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following command git svn clone \ -r9500:10006 \ svn://svn.debian.org/svn/pkg-games/packages \ --trunk=/trunk/freedoom \ --branches=/branches/freedoom \ --tags=/tags/freedoom \ freedoom.git.2009091 produces strange results: With v1.6.3.3 (and perhaps earlier versions), this would fetch up to and including r9978 (the last revision of the no_iwad_alternatives branch before it was deleted), check it out, and prematurely declare success, leaving out some commits to the trunk (r9984, r9985, r10006) from after the branch was merged. With v1.6.5-rc0~74 (svn: allow branches outside of refs/remotes, 2009-08-11) and later, this fetches up to and including r9978 and then attempts a post-fetch checkout and fails. r9978 = 25f0920175c395f0f22f54ae7a2318147f745274 (refs/remotes/no_iwad_alternatives) fatal: refs/remotes/trunk: not a valid SHA1 update-ref refs/heads/master refs/remotes/trunk: command returned error: 128 Checking .git/config reveals fetch = packages//trunk/freedoom:refs/remotes/trunk And with both 1.6.3.3 and 1.7.1, using --trunk=trunk/freedom without the leading slash (/) works fine. Moral: git-svn needs to scrub an initial / from $_trunk and related arguments it receives. Make it so. Reported-by: Jon Dowland <jmtd@debian.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* git svn: fix empty directory creationMichael J. Kiwala2010-06-031-1/+2
| | | | | | | | | | | | Avoid attempts to stat() the contents of '', which could happen when the root directory is empty. Additionally, remove the unnecessary '_' stat optimization since it was confusing and possibly throwing off the non-existent case. [ew: fixed indentation, rewrote commit message] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Michael J. Kiwala <mkiwala@genome.wustl.edu>
* git-svn: mangle refnames forbidden in gitTorsten Schmutzler2010-05-091-0/+8
| | | | | | | | | | git-check-ref-format(1) describes names which cannot be used as refnames for git. Some are legal branchnames in subversion however. Mangle the not yet handled cases. Signed-off-by: Torsten Schmutzler <git-ts@theblacksun.eu> Acked-by: Eric Wong <normalperson@yhbt.net>
* git-svn: Remove unused use of File::TempÆvar Arnfjörð Bjarmason2010-05-091-1/+0
| | | | | | | | | The use line was added in ffe256f9. File::Temp calls were later moved to Git.pm in 0b19138b, but that commit neglected to remove the now-redundant import. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* git svn: avoid uninitialized var in 'reset'Jonathan Nieder2010-05-091-0/+2
| | | | | | | | | | | When "git svn reset" is called with an invalid revision, we bail out and show the user a proper error message instead of giving them a cryptic one related to git-svn internals. ref: http://bugs.debian.org/578908 Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Reported-by: Jens Seidel <jensseidel@users.sf.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* Merge branch 'fl/askpass'Junio C Hamano2010-03-201-10/+17
|\ | | | | | | | | | | * fl/askpass: git-core: Support retrieving passwords with GIT_ASKPASS git-svn: Support retrieving passwords with GIT_ASKPASS
| * git-svn: Support retrieving passwords with GIT_ASKPASSFrank Li2010-03-021-10/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | git-svn reads passwords from an interactive terminal. This behavior cause GUIs to hang waiting for git-svn to complete Fix this problem by allowing a password-retrieving command to be specified in GIT_ASKPASS. SSH_ASKPASS is supported as a fallback when GIT_ASKPASS is not provided. Signed-off-by: Frank Li <lznuaa@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: Fix merge detecting with rewrite-rootTuomas Suutari2010-03-131-2/+2
| | | | | | | | | | | | | | | | Detecting of merges from svn:mergeinfo or svk merge tickets failed with rewrite-root option. This fixes it. Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: make git svn --version work againMichael J Gruber2010-03-051-0/+1
| | | | | | | | | | | | | | by requesting SVN::Core which is needed for the svn version. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | Revert "git-svn: always initialize with core.autocrlf=false"Erik Faye-Lund2010-03-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | git-svn rebase used to have issues with CRLF conversion. Since these issues have been fixed, we can safely revert the work-around that disables CRLF conversion. This reverts commit d3c9634eacdcaa71cbd69a160e6f4e80ddb7ab63. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
* | git-svn: req_svn when neededMichael J Gruber2010-03-041-0/+1
| | | | | | | | | | | | | | | | The delayed loading of SVN missed a place where SVN::Core is used. Make sure to load the package before trying to use it. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Acked-by: Eric Wong <normalperson@yhbt.net>
* | Merge branch 'jn/maint-fix-pager'Junio C Hamano2010-03-021-2/+7
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | * jn/maint-fix-pager: tests: Fix race condition in t7006-pager t7006-pager: if stdout is not a terminal, make a new one tests: Add tests for automatic use of pager am: Fix launching of pager git svn: Fix launching of pager git.1: Clarify the behavior of the --paginate option Make 'git var GIT_PAGER' always print the configured pager Fix 'git var' usage synopsis
| * git svn: Fix launching of pagerJonathan Nieder2010-02-141-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit dec543e (am -i, git-svn: use "git var GIT_PAGER"), I tried to teach git svn to defer to git var on what pager to use. In the process, I introduced two bugs: - The value set for $pager in config_pager has local scope, so run_pager never sees it; - git var cannot tell whether git svn’s output is going to a terminal, so the value chosen for $pager does not reflect that information. Fix them. Reported-by: Sebastian Celis <sebastian@sebastiancelis.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>