{"thread":{"id":"20207","subject":"[ANNOUNCE] GIT 1.6.4-rc2","startedAt":"2009-07-23T06:40:01Z","lastAt":"2009-07-26T10:01:52Z","messageCount":12,"participants":["Junio C Hamano","Tony Finch","Eric Wong","Mattias Nissler"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"118559","messageId":"7vd47r298e.fsf@alter.siamese.dyndns.org","threadId":"20207","inReplyTo":null,"subject":"[ANNOUNCE] GIT 1.6.4-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-23T06:40:01Z","receivedAt":"2009-07-23T06:40:01Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate GIT 1.6.4-rc2 is available at the usual places\nfor testing:\n\n  http://www.kernel.org/pub/software/scm/git/\n\n  git-1.6.4.rc2.tar.{gz,bz2}\t\t\t(source tarball)\n  git-htmldocs-1.6.4.rc2.tar.{gz,bz2}\t\t(preformatted docs)\n  git-manpages-1.6.4.rc2.tar.{gz,bz2}\t\t(preformatted docs)\n\nThe RPM binary packages for a few architectures are found in:\n\n  testing/git-*-1.6.4.rc2-1.fc9.$arch.rpm\t(RPM)\n\nThe changes since -rc1 are all small fixes and documentation updates; we\nare in a very good shape to expect 1.6.4 final by the end of the month.\n\nGIT v1.6.4 Release Notes (draft)\n================================\n\nWith the next major release, \"git push\" into a branch that is\ncurrently checked out will be refused by default.  You can choose\nwhat should happen upon such a push by setting the configuration\nvariable receive.denyCurrentBranch in the receiving repository.\n\nTo ease the transition plan, the receiving repository of such a\npush running this release will issue a big warning when the\nconfiguration variable is missing.  Please refer to:\n\n  http://git.or.cz/gitwiki/GitFaq#non-bare\n  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007\n\nfor more details on the reason why this change is needed and the\ntransition plan.\n\nFor a similar reason, \"git push $there :$killed\" to delete the branch\n$killed in a remote repository $there, if $killed branch is the current\nbranch pointed at by its HEAD, gets a large warning.  You can choose what\nshould happen upon such a push by setting the configuration variable\nreceive.denyDeleteCurrent in the receiving repository.\n\n\nUpdates since v1.6.3\n--------------------\n\n(subsystems)\n\n * gitweb Perl style clean-up.\n\n * git-svn updates, including a new --authors-prog option to map author\n   names by invoking an external program, 'git svn reset' to unwind\n   'git svn fetch', support for more than one branches, etc.\n\n(portability)\n\n * We feed iconv with \"UTF-8\" instead of \"utf8\"; the former is\n   understood more widely.  Similarly updated test scripts to use\n   encoding names more widely understood (e.g. use \"ISO8850-1\" instead\n   of \"ISO-8859-1\").\n\n * Various portability fixes/workarounds for different vintages of\n   SunOS, IRIX, and Windows.\n\n * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.\n\n(performance)\n\n * Many repeated use of lstat() are optimized out in \"checkout\" codepath.\n\n * git-status (and underlying git-diff-index --cached) are optimized\n   to take advantage of cache-tree information in the index.\n\n(usability, bells and whistles)\n\n * \"git add --edit\" lets users edit the whole patch text to fine-tune what\n   is added to the index.\n\n * \"git am\" accepts StGIT series file as its input.\n\n * \"git bisect skip\" skips to a more randomly chosen place in the hope\n   to avoid testing a commit that is too close to a commit that is\n   already known to be untestable.\n\n * \"git cvsexportcommit\" learned -k option to stop CVS keywords expansion\n\n * \"git grep\" learned -p option to show the location of the match using the\n   same context hunk marker \"git diff\" uses.\n\n * https transport can optionally be told that the used client\n   certificate is password protected, in which case it asks the\n   password only once.\n\n * \"git imap-send\" is IPv6 aware.\n\n * \"git log --graph\" draws graphs more compactly by using horizonal lines\n   when able.\n\n * \"git log --decorate\" shows shorter refnames by stripping well-known\n   refs/* prefix.\n\n * \"git push $name\" honors remote.$name.pushurl if present before\n   using remote.$name.url.  In other words, the URL used for fetching\n   and pushing can be different.\n\n * \"git send-email\" understands quoted aliases in .mailrc files (might\n   have to be backported to 1.6.3.X).\n\n * \"git send-email\" can fetch the sender address from the configuration\n   variable \"sendmail.from\" (and \"sendmail.<identity>.from\").\n\n * \"git show-branch\" can color its output.\n\n * \"add\" and \"update\" subcommands to \"git submodule\" learned --reference\n   option to use local clone with references.\n\n * \"git submodule update\" learned --rebase option to update checked\n   out submodules by rebasing the local changes.\n\n * \"gitweb\" can optionally use gravatar to adorn author/committer names.\n\n(developers)\n\n * A major part of the \"git bisect\" wrapper has moved to C.\n\nFixes since v1.6.3\n------------------\n\nAll of the fixes in v1.6.3.X maintenance series are included in this\nrelease, unless otherwise noted.\n\nHere are fixes that this release has, but have not been backported to\nv1.6.3.X series.\n\n * \"git diff-tree -r -t\" used to omit new or removed directories from\n   the output.  df533f3 (diff-tree -r -t: include added/removed\n   directories in the output, 2009-06-13) may need to be cherry-picked\n   to backport this fix.\n\n * The way Git.pm sets up a Repository object was not friendly to callers\n   that chdir around.  It now internally records the repository location\n   as an absolute path when autodetected.\n\n---\nexec >/var/tmp/1\necho O=$(git describe master)\nO=v1.6.4-rc1-7-gbba0fd2\ngit shortlog --no-merges $O..master ^maint\n\n\n----------------------------------------------------------------\n\nChanges since v1.6.4-rc1 are as follows:\n\nBrandon Casey (4):\n      refs.c: release file descriptor on error return\n      sha1_name.c: avoid unnecessary strbuf_release\n      configure.ac: rework/fix the NEEDS_RESOLV and NEEDS_LIBGEN tests\n      configure.ac: properly unset NEEDS_SSL_WITH_CRYPTO when sha1 func is missing\n\nEric Wong (2):\n      git svn: rename tests that had conflicting numbers\n      git svn: fix reparenting when ugly http(s) URLs are used\n\nJunio C Hamano (5):\n      checkout -f: deal with a D/F conflict entry correctly\n      push: do not give big warning when no preference is configured\n      Updates to draft release notes to 1.6.4\n      combine-diff.c: fix performance problem when folding common deleted lines\n      diff --cc: a lost line at the beginning of the file is shown incorrectly\n\nMartin Koegler (1):\n      git stash: modernize use of \"dashed\" git-XXX calls\n\nMichael J Gruber (1):\n      t4202-log.sh: Test git log --no-walk sort order\n\nMike Ralphson (1):\n      cvsexportcommit: reorder tests to quiet intermittent failure\n\nPierre Habouzit (4):\n      janitor: use NULL and not 0 for pointers.\n      refactor: use bitsizeof() instead of 8 * sizeof()\n      janitor: add DIV_ROUND_UP and use it.\n      janitor: useless checks before free\n\nSZEDER Gábor (1):\n      Trailing whitespace and no newline fix\n\nYann Dirson (2):\n      List send-email config options in config.txt.\n      Improve doc for format-patch threading options.\n"},{"id":"118590","messageId":"alpine.LSU.2.00.0907231730130.30197@hermes-2.csi.cam.ac.uk","threadId":"20207","inReplyTo":"7vd47r298e.fsf@alter.siamese.dyndns.org","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Tony Finch","fromEmail":"dot@dotat.at","sentAt":"2009-07-23T16:32:01Z","receivedAt":"2009-07-23T16:32:01Z","isPatch":false,"sender":{"key":"dot@dotat.at","avatar":"https://avatars.githubusercontent.com/u/68429?v=4"},"body":"On Wed, 22 Jul 2009, Junio C Hamano wrote:\n>\n> (portability)\n>\n>  * We feed iconv with \"UTF-8\" instead of \"utf8\"; the former is\n>    understood more widely.  Similarly updated test scripts to use\n>    encoding names more widely understood (e.g. use \"ISO8850-1\" instead\n>    of \"ISO-8859-1\").\n\nTypo: ISO8859-1 not ISO8850-1 (9 not 0)\n\nTony.\n-- \nf.anthony.n.finch  <dot@dotat.at>  http://dotat.at/\nGERMAN BIGHT HUMBER: SOUTHWEST 5 TO 7. MODERATE OR ROUGH. SQUALLY SHOWERS.\nMODERATE OR GOOD.\n"},{"id":"118622","messageId":"20090724093847.GA20338@dcvr.yhbt.net","threadId":"20207","inReplyTo":"7vd47r298e.fsf@alter.siamese.dyndns.org","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-24T09:38:48Z","receivedAt":"2009-07-24T09:38:48Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Junio C Hamano <gitster@pobox.com> wrote:\n>  * git-svn updates, including a new --authors-prog option to map author\n>    names by invoking an external program, 'git svn reset' to unwind\n>    'git svn fetch', support for more than one branches, etc.\n\nI completely forgot the implications of a change made in commit\n0b2af457a49e3b00d47d556d5301934d27909db8.  This change probably doesn't\naffect a lot of repos out there, but --minimize-url is no longer the\ndefault for new imports.\n\n\nThe good thing is that access-limited repositories are easier to setup\nand import.  So if you only had access for a sub_project under the\nrepository root in svn://example.com/big_project/sub_project,\nyou won't need read permissions to / or /big_project, just\n/big_project/sub_project and everything under it.\n\n\nUnfortunately, this default breaks the case where a project is moved to\na lower-level within the repository:\n\nsvn://example.com/foo => svn://example.com/big_project/sub_project\n\nWithout --minimize-url enabled, your clone would register\n\"/big_project/sub_project\" to track and not be able to find the history\nof \"/foo\".  With --minimize-url (the old behavior), you would've\nregistered \"/\" to be able to track all subdirectories underneath the\nrepository root (assuming the SVN repo is world-readable).\n\n\nWhile both cases are fairly rare, I've personally encountered the latter\n(and now broken-by-default) case more.  This is because I mainly use\ngit/git svn to work on free software without read restrictions.\nHowever, with more and more free projects switching entirely to git,\nmaybe leaving the default to be more friendly to people on restrictive\nsetups will be more helpful than harmful.\n\nThis change only affects the creation of new clones, existing repos\nare unaffected.\n\n\nLet me know if the above made sense, it's late and I nodded off\nseveral times while writing this.\n\n-- \nEric Wong\n"},{"id":"118643","messageId":"7vk51ykm42.fsf@alter.siamese.dyndns.org","threadId":"20207","inReplyTo":"20090724093847.GA20338@dcvr.yhbt.net","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-24T17:49:01Z","receivedAt":"2009-07-24T17:49:01Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Wong <normalperson@yhbt.net> writes:\n\n> Junio C Hamano <gitster@pobox.com> wrote:\n>>  * git-svn updates, including a new --authors-prog option to map author\n>>    names by invoking an external program, 'git svn reset' to unwind\n>>    'git svn fetch', support for more than one branches, etc.\n>\n> I completely forgot the implications of a change made in commit\n> 0b2af457a49e3b00d47d556d5301934d27909db8.  This change probably doesn't\n> affect a lot of repos out there, but --minimize-url is no longer the\n> default for new imports.\n>\n>\n> The good thing is that access-limited repositories are easier to setup\n> and import.  So if you only had access for a sub_project under the\n> repository root in svn://example.com/big_project/sub_project,\n> you won't need read permissions to / or /big_project, just\n> /big_project/sub_project and everything under it.\n>\n>\n> Unfortunately, this default breaks the case where a project is moved to\n> a lower-level within the repository:\n>\n> svn://example.com/foo => svn://example.com/big_project/sub_project\n>\n> Without --minimize-url enabled, your clone would register\n> \"/big_project/sub_project\" to track and not be able to find the history\n> of \"/foo\".  With --minimize-url (the old behavior), you would've\n> registered \"/\" to be able to track all subdirectories underneath the\n> repository root (assuming the SVN repo is world-readable).\n>\n>\n> While both cases are fairly rare, I've personally encountered the latter\n> (and now broken-by-default) case more.  This is because I mainly use\n> git/git svn to work on free software without read restrictions.\n> However, with more and more free projects switching entirely to git,\n> maybe leaving the default to be more friendly to people on restrictive\n> setups will be more helpful than harmful.\n>\n> This change only affects the creation of new clones, existing repos\n> are unaffected.\n>\n> Let me know if the above made sense, it's late and I nodded off\n> several times while writing this.\n\nYour description makes sense, and I suspect that the old default may be\neasier to work with.\n\nMinimally, a patch to git-svn.txt and RelNotes-1.6.4.txt in Documentation/\nto describe the situation with a recipe (in the former) to allow people\nthe older behaviour would be in order.  It appears minimize-url is not\neven documented as far as I can see in the current documentation set.\n"},{"id":"118710","messageId":"20090725103821.GA13534@dcvr.yhbt.net","threadId":"20207","inReplyTo":"7vk51ykm42.fsf@alter.siamese.dyndns.org","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-25T10:38:21Z","receivedAt":"2009-07-25T10:38:21Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Junio C Hamano <gitster@pobox.com> wrote:\n> Eric Wong <normalperson@yhbt.net> writes:\n> > Junio C Hamano <gitster@pobox.com> wrote:\n> >>  * git-svn updates, including a new --authors-prog option to map author\n> >>    names by invoking an external program, 'git svn reset' to unwind\n> >>    'git svn fetch', support for more than one branches, etc.\n> >\n> > I completely forgot the implications of a change made in commit\n> > 0b2af457a49e3b00d47d556d5301934d27909db8.  This change probably doesn't\n> > affect a lot of repos out there, but --minimize-url is no longer the\n> > default for new imports.\n\n> > Let me know if the above made sense, it's late and I nodded off\n> > several times while writing this.\n> \n> Your description makes sense, and I suspect that the old default may be\n> easier to work with.\n\nYes.  I think the old default makes more sense, so I'll be reverting\nback to it.  However, I'll make it possible to override from the\ncommand-line.\n\n> Minimally, a patch to git-svn.txt and RelNotes-1.6.4.txt in Documentation/\n> to describe the situation with a recipe (in the former) to allow people\n> the older behaviour would be in order.  It appears minimize-url is not\n> even documented as far as I can see in the current documentation set.\n\n>From a93241b082cd6e7344d0e53969b1e66d443fa48b Mon Sep 17 00:00:00 2001\nFrom: Eric Wong <normalperson@yhbt.net>\nDate: Sat, 25 Jul 2009 00:00:50 -0700\nSubject: [PATCH] git-svn: revert default behavior for --minimize-url\n\nThis reverts the --minimize-url behavior change that\nappeared recently in commit 0b2af457a49e3b00d47d556d5301934d27909db8\n(\"Fix branch detection when repository root is inaccessible\").\n\nHowever, we now allow the option to be turned off by allowing\n\"--no-minimize-url\" so people with limited-access setups can\nstill take advantage of the fix in\n0b2af457a49e3b00d47d556d5301934d27909db8.\n\nAlso document the behavior and default settings of minimize-url\nin the manpage for the first time.\n\nThis introduces a temporary UI regression to allow t9141 to pass\nthat will be reverted (fixed) in the next commit.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n Documentation/git-svn.txt            |   11 +++++++++++\n git-svn.perl                         |    7 ++++++-\n t/t9141-git-svn-multiple-branches.sh |    8 ++++----\n 3 files changed, 21 insertions(+), 5 deletions(-)\n\ndiff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt\nindex 068aa58..22a0389 100644\n--- a/Documentation/git-svn.txt\n+++ b/Documentation/git-svn.txt\n@@ -80,6 +80,17 @@ COMMANDS\n \tWhen passed to 'init' or 'clone' this regular expression will\n \tbe preserved as a config key.  See 'fetch' for a description\n \tof '--ignore-paths'.\n+--no-minimize-url;;\n+\tWhen tracking multiple directories (using --stdlayout,\n+\t--branches, or --tags options), git svn will attempt to connect\n+\tto the root (or highest allowed level) of the Subversion\n+\trepository.  This default allows better tracking of history if\n+\tentire projects are moved within a repository, but may cause\n+\tissues on repositories where read access restrictions are in\n+\tplace.  Passing '--no-minimize-url' will allow git svn to\n+\taccept URLs as-is without attempting to connect to a higher\n+\tlevel directory.  This option is off by default when only\n+\tone URL/branch is tracked (it would do little good).\n \n 'fetch'::\n \tFetch unfetched revisions from the Subversion remote we are\ndiff --git a/git-svn.perl b/git-svn.perl\nindex 7015920..10b77ad 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -19,6 +19,7 @@ $ENV{GIT_DIR} ||= '.git';\n $Git::SVN::default_repo_id = 'svn';\n $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';\n $Git::SVN::Ra::_log_window_size = 100;\n+$Git::SVN::_minimize_url = 'unset';\n \n $Git::SVN::Log::TZ = $ENV{TZ};\n $ENV{TZ} = 'UTC';\n@@ -100,7 +101,7 @@ my %init_opts = ( 'template=s' => \\$_template, 'shared:s' => \\$_shared,\n                   'trunk|T=s' => \\$_trunk, 'tags|t=s@' => \\@_tags,\n                   'branches|b=s@' => \\@_branches, 'prefix=s' => \\$_prefix,\n                   'stdlayout|s' => \\$_stdlayout,\n-                  'minimize-url|m' => \\$Git::SVN::_minimize_url,\n+                  'minimize-url|m!' => \\$Git::SVN::_minimize_url,\n \t\t  'no-metadata' => sub { $icv{noMetadata} = 1 },\n \t\t  'use-svm-props' => sub { $icv{useSvmProps} = 1 },\n \t\t  'use-svnsync-props' => sub { $icv{useSvnsyncProps} = 1 },\n@@ -399,6 +400,10 @@ sub cmd_init {\n \tinit_subdir(@_);\n \tdo_git_init_db();\n \n+\tif ($Git::SVN::_minimize_url eq 'unset') {\n+\t\t$Git::SVN::_minimize_url = 0;\n+\t}\n+\n \tGit::SVN->init($url);\n }\n \ndiff --git a/t/t9141-git-svn-multiple-branches.sh b/t/t9141-git-svn-multiple-branches.sh\nindex 3cd0671..cb9a6d2 100755\n--- a/t/t9141-git-svn-multiple-branches.sh\n+++ b/t/t9141-git-svn-multiple-branches.sh\n@@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' '\n \n test_expect_success 'create new branches and tags' '\n \t( cd git_project &&\n-\t\tgit svn branch -m \"New branch 1\" -d b_one New1 ) &&\n+\t\tgit svn branch -m \"New branch 1\" -d project/b_one New1 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e b_one/New1/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn branch -m \"New branch 2\" -d b_two New2 ) &&\n+\t\tgit svn branch -m \"New branch 2\" -d project/b_two New2 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e b_two/New2/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn branch -t -m \"New tag 1\" -d tags_A Tag1 ) &&\n+\t\tgit svn branch -t -m \"New tag 1\" -d project/tags_A Tag1 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e tags_A/Tag1/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn tag -m \"New tag 2\" -d tags_B Tag2 ) &&\n+\t\tgit svn tag -m \"New tag 2\" -d project/tags_B Tag2 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e tags_B/Tag2/a.file )\n '\n-- \nEric Wong\n"},{"id":"118713","messageId":"20090725111044.GA7969@dcvr.yhbt.net","threadId":"20207","inReplyTo":"20090725103821.GA13534@dcvr.yhbt.net","subject":"[PATCH 2/2] git svn: the branch command no longer needs the full path","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-25T11:10:44Z","receivedAt":"2009-07-25T11:10:44Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"This was introduced in 0b2af457a49e3b00d47d556d5301934d27909db8\n(\"Fix branch detection when repository root is inaccessible\")\nbut reintroduced in the previous commit.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n\n  Also pushed out to git://git.bogomips.org/git-svn along with some\n  other changes:\n\n  # I removed the \"-\" in \"git svn\" in the pushed out version of\n  # \"git svn: revert default behavior for --minimize-url\"\n  Eric Wong (4):\n        git svn: revert default behavior for --minimize-url\n        git svn: the branch command no longer needs the full path\n        t9142: remember to stop httpd if it was used\n        git svn: avoid escaping '/' when renaming/copying files\n\n  # I thought I had pushed this out earlier:\n  Robert Allan Zeh (1):\n        git svn: add gc command\n\n git-svn.perl                         |   19 ++++++++++++++++---\n t/t9141-git-svn-multiple-branches.sh |    8 ++++----\n 2 files changed, 20 insertions(+), 7 deletions(-)\n\ndiff --git a/git-svn.perl b/git-svn.perl\nindex 10b77ad..9808597 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -666,9 +666,22 @@ sub cmd_branch {\n \t\t\t}\n \t\t}\n \t\tunless (defined $glob) {\n-\t\t\tdie \"Unknown \",\n-\t\t\t    $_tag ? \"tag\" : \"branch\",\n-\t\t\t    \" destination $_branch_dest\\n\";\n+\t\t\tmy $dest_re = qr/\\b\\Q$_branch_dest\\E\\b/;\n+\t\t\tforeach my $g (@{$allglobs}) {\n+\t\t\t\t$g->{path}->{left} =~ /$dest_re/ or next;\n+\t\t\t\tif (defined $glob) {\n+\t\t\t\t\tdie \"Ambiguous destination: \",\n+\t\t\t\t\t    $_branch_dest, \"\\nmatches both '\",\n+\t\t\t\t\t    $glob->{path}->{left}, \"' and '\",\n+\t\t\t\t\t    $g->{path}->{left}, \"'\\n\";\n+\t\t\t\t}\n+\t\t\t\t$glob = $g;\n+\t\t\t}\n+\t\t\tunless (defined $glob) {\n+\t\t\t\tdie \"Unknown \",\n+\t\t\t\t    $_tag ? \"tag\" : \"branch\",\n+\t\t\t\t    \" destination $_branch_dest\\n\";\n+\t\t\t}\n \t\t}\n \t}\n \tmy ($lft, $rgt) = @{ $glob->{path} }{qw/left right/};\ndiff --git a/t/t9141-git-svn-multiple-branches.sh b/t/t9141-git-svn-multiple-branches.sh\nindex cb9a6d2..3cd0671 100755\n--- a/t/t9141-git-svn-multiple-branches.sh\n+++ b/t/t9141-git-svn-multiple-branches.sh\n@@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' '\n \n test_expect_success 'create new branches and tags' '\n \t( cd git_project &&\n-\t\tgit svn branch -m \"New branch 1\" -d project/b_one New1 ) &&\n+\t\tgit svn branch -m \"New branch 1\" -d b_one New1 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e b_one/New1/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn branch -m \"New branch 2\" -d project/b_two New2 ) &&\n+\t\tgit svn branch -m \"New branch 2\" -d b_two New2 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e b_two/New2/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn branch -t -m \"New tag 1\" -d project/tags_A Tag1 ) &&\n+\t\tgit svn branch -t -m \"New tag 1\" -d tags_A Tag1 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e tags_A/Tag1/a.file ) &&\n \n \t( cd git_project &&\n-\t\tgit svn tag -m \"New tag 2\" -d project/tags_B Tag2 ) &&\n+\t\tgit svn tag -m \"New tag 2\" -d tags_B Tag2 ) &&\n \t( cd svn_project &&\n \t\tsvn_cmd up && test -e tags_B/Tag2/a.file )\n '\n-- \nEric Wong\n"},{"id":"118715","messageId":"1248529164.4593.8.camel@kea","threadId":"20207","inReplyTo":"20090725103821.GA13534@dcvr.yhbt.net","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Mattias Nissler","fromEmail":"mattias.nissler@gmx.de","sentAt":"2009-07-25T13:39:24Z","receivedAt":"2009-07-25T13:39:24Z","isPatch":false,"sender":{"key":"mattias.nissler@gmx.de","avatar":null},"body":"On Sat, 2009-07-25 at 03:38 -0700, Eric Wong wrote:\n> Junio C Hamano <gitster@pobox.com> wrote:\n> > Eric Wong <normalperson@yhbt.net> writes:\n> > > Junio C Hamano <gitster@pobox.com> wrote:\n> > >>  * git-svn updates, including a new --authors-prog option to map author\n> > >>    names by invoking an external program, 'git svn reset' to unwind\n> > >>    'git svn fetch', support for more than one branches, etc.\n> > >\n> > > I completely forgot the implications of a change made in commit\n> > > 0b2af457a49e3b00d47d556d5301934d27909db8.  This change probably doesn't\n> > > affect a lot of repos out there, but --minimize-url is no longer the\n> > > default for new imports.\n> \n> > > Let me know if the above made sense, it's late and I nodded off\n> > > several times while writing this.\n> > \n> > Your description makes sense, and I suspect that the old default may be\n> > easier to work with.\n> \n> Yes.  I think the old default makes more sense, so I'll be reverting\n> back to it.  However, I'll make it possible to override from the\n> command-line.\n\nMaybe we should rather try to detect whether we have read access to the\nrepository root and adjust behaviour accordingly? Or at least print a\nwarning when cloning restricted multi-branch repos, since this just\nfails silently (doesn't pick up any branches) when you have minimize_url\nenabled.\n\nMattias\n"},{"id":"118769","messageId":"20090725192230.GA11510@dcvr.yhbt.net","threadId":"20207","inReplyTo":"1248529164.4593.8.camel@kea","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-25T19:22:30Z","receivedAt":"2009-07-25T19:22:30Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Mattias Nissler <mattias.nissler@gmx.de> wrote:\n> On Sat, 2009-07-25 at 03:38 -0700, Eric Wong wrote:\n> > Junio C Hamano <gitster@pobox.com> wrote:\n> > > Eric Wong <normalperson@yhbt.net> writes:\n> > > > Junio C Hamano <gitster@pobox.com> wrote:\n> > > >>  * git-svn updates, including a new --authors-prog option to map author\n> > > >>    names by invoking an external program, 'git svn reset' to unwind\n> > > >>    'git svn fetch', support for more than one branches, etc.\n> > > >\n> > > > I completely forgot the implications of a change made in commit\n> > > > 0b2af457a49e3b00d47d556d5301934d27909db8.  This change probably doesn't\n> > > > affect a lot of repos out there, but --minimize-url is no longer the\n> > > > default for new imports.\n> > \n> > > > Let me know if the above made sense, it's late and I nodded off\n> > > > several times while writing this.\n> > > \n> > > Your description makes sense, and I suspect that the old default may be\n> > > easier to work with.\n> > \n> > Yes.  I think the old default makes more sense, so I'll be reverting\n> > back to it.  However, I'll make it possible to override from the\n> > command-line.\n> \n> Maybe we should rather try to detect whether we have read access to the\n> repository root and adjust behaviour accordingly? Or at least print a\n> warning when cloning restricted multi-branch repos, since this just\n> fails silently (doesn't pick up any branches) when you have minimize_url\n> enabled.\n\nWe actually try that in Git::SVN::Ra::minimize_url:\n\nsub minimize_url {\n\tmy ($self) = @_;\n\treturn $self->{url} if ($self->{url} eq $self->{repos_root});\n\tmy $url = $self->{repos_root};\n\tmy @components = split(m!/!, $self->{svn_path});\n\tmy $c = '';\n\tdo {\n\t\t$url .= \"/$c\" if length $c;\n\t\teval { (ref $self)->new($url)->get_latest_revnum };\n\t} while ($@ && ($c = shift @components));\n\t$url;\n}\n\nMaybe get_latest_revnum() isn't strong enough of a check for\ncertain setups and get_log() needs to be used instead?\n\n-- \nEric Wong\n"},{"id":"118774","messageId":"1248553018.4593.15.camel@kea","threadId":"20207","inReplyTo":"20090725192230.GA11510@dcvr.yhbt.net","subject":"Re: [ANNOUNCE] GIT 1.6.4-rc2","fromName":"Mattias Nissler","fromEmail":"mattias.nissler@gmx.de","sentAt":"2009-07-25T20:16:58Z","receivedAt":"2009-07-25T20:16:58Z","isPatch":false,"sender":{"key":"mattias.nissler@gmx.de","avatar":null},"body":"On Sat, 2009-07-25 at 12:22 -0700, Eric Wong wrote:\n> Mattias Nissler <mattias.nissler@gmx.de> wrote:\n> > Maybe we should rather try to detect whether we have read access to the\n> > repository root and adjust behaviour accordingly? Or at least print a\n> > warning when cloning restricted multi-branch repos, since this just\n> > fails silently (doesn't pick up any branches) when you have minimize_url\n> > enabled.\n> \n> We actually try that in Git::SVN::Ra::minimize_url:\n> \n> sub minimize_url {\n> \tmy ($self) = @_;\n> \treturn $self->{url} if ($self->{url} eq $self->{repos_root});\n> \tmy $url = $self->{repos_root};\n> \tmy @components = split(m!/!, $self->{svn_path});\n> \tmy $c = '';\n> \tdo {\n> \t\t$url .= \"/$c\" if length $c;\n> \t\teval { (ref $self)->new($url)->get_latest_revnum };\n> \t} while ($@ && ($c = shift @components));\n> \t$url;\n> }\n> \n> Maybe get_latest_revnum() isn't strong enough of a check for\n> certain setups and get_log() needs to be used instead?\n\nWell, I simply wasn't aware of this. I've just retried and it turns out\nlatest git.git works perfectly for me in both restricted and\nnon-restricted setups. Great work!\n\nMattias\n"},{"id":"118778","messageId":"20090725205705.GA18321@dcvr.yhbt.net","threadId":"20207","inReplyTo":"1248553018.4593.15.camel@kea","subject":"[PATCH] git svn: make minimize URL more reliable over http(s)","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-25T20:57:05Z","receivedAt":"2009-07-25T20:57:05Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"In addition to path-based restrictions, Subversion servers over\nhttp(s) may have access controls implemented via the LimitExcept\ndirective in Apache.  In some cases, LimitExcept may be\n(arguably) misconfigured to not allow REPORT requests while\nallowing OPTIONS and PROPFIND.\n\nThis caused problems with our existing minimize_url logic that\nonly issued OPTIONS and PROPFIND requests when connecting and\nusing SVN::Ra::get_latest_revnum.  We now call SVN::Ra::get_log\nif get_latest_revnum succeeds, resulting in a REPORT request\nbeing sent.  This will increase our chances of tripping access\ncontrols before we start attempting to fetch history.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n  Also pushed out to git://git.bogomips.org/git-svn\n\n  Mattias Nissler <mattias.nissler@gmx.de> wrote:\n  > On Sat, 2009-07-25 at 12:22 -0700, Eric Wong wrote:\n  > > Mattias Nissler <mattias.nissler@gmx.de> wrote:\n  > > > Maybe we should rather try to detect whether we have read access to the\n  > > > repository root and adjust behaviour accordingly? Or at least print a\n  > > > warning when cloning restricted multi-branch repos, since this just\n  > > > fails silently (doesn't pick up any branches) when you have minimize_url\n  > > > enabled.\n  > > \n  > > We actually try that in Git::SVN::Ra::minimize_url:\n   <snip>\n  > > Maybe get_latest_revnum() isn't strong enough of a check for\n  > > certain setups and get_log() needs to be used instead?\n  > \n  > Well, I simply wasn't aware of this. I've just retried and it turns out\n  > latest git.git works perfectly for me in both restricted and\n  > non-restricted setups. Great work!\n\n git-svn.perl |    6 +++++-\n 1 files changed, 5 insertions(+), 1 deletions(-)\n\ndiff --git a/git-svn.perl b/git-svn.perl\nindex fd7232c..d075810 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -4831,7 +4831,11 @@ sub minimize_url {\n \tmy $c = '';\n \tdo {\n \t\t$url .= \"/$c\" if length $c;\n-\t\teval { (ref $self)->new($url)->get_latest_revnum };\n+\t\teval {\n+\t\t\tmy $ra = (ref $self)->new($url);\n+\t\t\tmy $latest = $ra->get_latest_revnum;\n+\t\t\t$ra->get_log(\"\", $latest, 0, 1, 0, 1, sub {});\n+\t\t};\n \t} while ($@ && ($c = shift @components));\n \t$url;\n }\n-- \nEric Wong\n"},{"id":"118817","messageId":"7v3a8jsvyu.fsf@alter.siamese.dyndns.org","threadId":"20207","inReplyTo":"20090725111044.GA7969@dcvr.yhbt.net","subject":"Re: [PATCH 2/2] git svn: the branch command no longer needs the full path","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-26T08:13:29Z","receivedAt":"2009-07-26T08:13:29Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Wong <normalperson@yhbt.net> writes:\n\n>   # I thought I had pushed this out earlier:\n>   Robert Allan Zeh (1):\n>         git svn: add gc command\n\nNote that with this commit, the test fails needlessly if Compress::Zlib is\nnot found, even though otherwise \"svn gc\" succeeds (for some definition of\n\"success\")..\n"},{"id":"118824","messageId":"20090726100152.GA25775@dcvr.yhbt.net","threadId":"20207","inReplyTo":"7v3a8jsvyu.fsf@alter.siamese.dyndns.org","subject":"[PATCH] t9143: do not fail if Compress::Zlib is missing","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-07-26T10:01:52Z","receivedAt":"2009-07-26T10:01:52Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"\"git svn gc\" will not compress unhandled.log files if\nCompress::Zlib is missing.  However, leftover index files should\nalways be removed, so add a test for this behavior as well.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n  Junio C Hamano <gitster@pobox.com> wrote:\n  > Eric Wong <normalperson@yhbt.net> writes:\n  > \n  > >   # I thought I had pushed this out earlier:\n  > >   Robert Allan Zeh (1):\n  > >         git svn: add gc command\n  > \n  > Note that with this commit, the test fails needlessly if Compress::Zlib is\n  > not found, even though otherwise \"svn gc\" succeeds (for some definition of\n  > \"success\")..\n\n  Oops, this test completely slipped my mind even though I caught the\n  issue in the original code.  Pushed out to git://git.bogomips.org/git-svn\n\n t/t9143-git-svn-gc.sh |   15 ++++++++++++---\n 1 files changed, 12 insertions(+), 3 deletions(-)\n\ndiff --git a/t/t9143-git-svn-gc.sh b/t/t9143-git-svn-gc.sh\nindex aaa3af0..f2ba2d1 100755\n--- a/t/t9143-git-svn-gc.sh\n+++ b/t/t9143-git-svn-gc.sh\n@@ -31,11 +31,20 @@ test_expect_success 'make backup copy of unhandled.log' '\n \t cp .git/svn/git-svn/unhandled.log tmp\n \t'\n \n+test_expect_success 'create leftover index' '> .git/svn/git-svn/index'\n+\n test_expect_success 'git svn gc runs' 'git svn gc'\n \n-test_expect_success 'git svn gc produces a valid gzip file' '\n-\t gunzip .git/svn/git-svn/unhandled.log.gz\n-\t'\n+test_expect_success 'git svn index removed' '! test -f .git/svn/git-svn/index'\n+\n+if perl -MCompress::Zlib -e 0 2>/dev/null\n+then\n+\ttest_expect_success 'git svn gc produces a valid gzip file' '\n+\t\t gunzip .git/svn/git-svn/unhandled.log.gz\n+\t\t'\n+else\n+\tsay \"Perl Compress::Zlib unavailable, skipping gunzip test\"\n+fi\n \n test_expect_success 'git svn gc does not change unhandled.log files' '\n \t test_cmp .git/svn/git-svn/unhandled.log tmp/unhandled.log\n-- \nEric Wong\n"}]}