1. 19 2月, 2009 1 次提交
  2. 16 2月, 2009 1 次提交
  3. 11 2月, 2009 4 次提交
  4. 26 1月, 2009 2 次提交
    • V
      git-svn: add --ignore-paths option for fetching · edc662f9
      Vitaly \"_Vi\" Shukela 提交于
      This will be useful when somebody want to checkout something partially from
      repository with some non-standart layout or exclude some files from it.
      Example: repository has structure /module-{a,b,c}/{trunk,branches,tags}/...
      Modules are interdependent, and you want it to be single repostory (to commit
      to all modules simultaneously and view complete history), but do not want
      branches and tags be checked out into working copy.
      Other use case is excluding some large blobs.
      
      The quirk for now is that user must specify this option every fetch/rebase;
      in other case he may get extra files or "file not found" errors. It may be
      will be resolved by adding regular expression to .git/config into
      [svn-remote ...] to make it persistent.
      Signed-off-by: NVitaly "_Vi" Shukela <public_vi@tut.by>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      
      [ew: replaced 4-space indent with tabs]
      [ew: prefixed $ignore_regex with an underscore to be consistent
           with other globals in git-svn]
      [ew: rearranged functions to minimize diff and removed prototype
           usage to be consistent with the rest of git-svn (and other
           Perl code in git (and they're ugly to me)]
      edc662f9
    • E
      git-svn: fix memory leak when checking for empty symlinks · bf8a40b8
      Eric Wong 提交于
      By enforcing SVN::Pool usage when calling get_file once again.
      
      This regression was introduced with the reintroduction of
      SVN::Ra::get_file() usage in
      dbc6c74dSigned-off-by: NEric Wong <normalperson@yhbt.net>
      bf8a40b8
  5. 19 1月, 2009 6 次提交
    • M
      git-svn: Show UUID in svn info for added directories with svn 1.5.5 · 22ba47f5
      Marcel Koeppen 提交于
      In svn 1.5.5 the output of "svn info" for added directories was changed
      and now shows the repository UUID. This patch implements the same
      behavior for "git svn info" and makes t9119-git-svn-info.17 pass if
      svn 1.5.5 is used.
      Signed-off-by: NMarcel Koeppen <git-dev@marzelpan.de>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      22ba47f5
    • E
      git-svn: avoid importing nested git repos · b03a71a6
      Eric Wong 提交于
      Some SVN repositories contain git repositories within them
      (hopefully accidentally checked in).  Since git refuses to track
      nested ".git" repositories, this can be a problem when fetching
      updates from SVN.
      
      Thanks to Morgan Christiansson for the report and testing.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      b03a71a6
    • E
      git-svn: fix SVN 1.1.x compatibility · 1ef626b4
      Eric Wong 提交于
      The get_log() function in the Perl SVN API introduced the limit
      parameter in 1.2.0.  However, this got discarded in our SVN::Ra
      compatibility layer when used with SVN 1.1.x.  We now emulate
      the limit functionality in older SVN versions by preventing the
      original callback from being called if the given limit has been
      reached.  This emulation is less bandwidth efficient, but SVN
      1.1.x is becoming rarer now.
      
      Additionally, the --limit parameter in svn(1) uses the
      aforementioned get_log() functionality change in SVN 1.2.x.
      t9129 no longer depends on --limit to work and instead uses
      Perl to parse out the commit message.
      
      Thanks to Tom G. Christensen for the bug report.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      1ef626b4
    • P
      git-svn: Add --localtime option to "fetch" · e82f0d73
      Pete Harlan 提交于
      By default git-svn stores timestamps of fetched commits in
      Subversion's UTC format.  Passing --localtime to fetch will convert
      them to the timezone of the server on which git-svn is run.
      
      This makes the timestamps of a resulting "git log" agree with what
      "svn log" shows for the same repository.
      Signed-off-by: NPete Harlan <pgit@pcharlan.com>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      e82f0d73
    • E
      git-svn: better attempt to handle broken symlink updates · baf5fa8a
      Eric Wong 提交于
      This is a followup to 7fc35e0e,
      (workaround a for broken symlinks in SVN).
      
      Since broken SVN clients can commit svn:special files without
      the magic "link " prefix, this can affect delta application
      when we update the broken svn:special file.  So now we fall
      back and retry the delta application on symlinks if having
      a "link " prefix fails.
      
      Our behavior differs from svn(1) (v1.5.1) slightly:
      
        When a svn:special file is created w/o a "link " prefix, svn
        will create a regular file (mode 100644 to git) with the
        contents of the blob as-is.
      
        Our behavior is to continue creating the symlink (mode 120000
        to git) with the contents of the blob as-is.  While this
        differs from current svn(1) behavior, this is easier and more
        efficient to implement (and the correctness of the svn(1) is
        debatable, since it's a workaround for a bug in the first
        place).
      
      More information on this SVN bug is described here:
        http://subversion.tigris.org/issues/show_bug.cgi?id=2692Signed-off-by: NEric Wong <normalperson@yhbt.net>
      baf5fa8a
    • E
      git-svn: handle empty files marked as symlinks in SVN · dbc6c74d
      Eric Wong 提交于
      Broken SVN clients generate empty files with the svn:special set
      to '*'.  This attempts to denote a symlink pointing to a file
      with an empty path (""), which cannot be generated on a POSIX
      system.
      
      Thus, we mimic the behavior of svn(1) and create a zero-byte
      file in our tree.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      dbc6c74d
  6. 15 12月, 2008 1 次提交
  7. 09 12月, 2008 1 次提交
    • D
      git-svn: Make following parents atomic · 553589f7
      Deskin Miller 提交于
      find_parent_branch generates branch@rev type branches when one has to
      look back through SVN history to properly get the history for a branch
      copied from somewhere not already being tracked by git-svn.  If in the
      process of fetching this history, git-svn is interrupted, then when one
      fetches again, it will use whatever was last fetched as the parent
      commit and fail to fetch any more history which it didn't get to before
      being terminated.  This is especially troubling in that different
      git-svn copies of the same SVN repository can end up with different
      commit sha1s, incorrectly showing the history as divergent and
      precluding easy collaboration using git push and fetch.
      
      To fix this, when we initialise the Git::SVN object $gs to search for
      and perhaps fetch history, we check if there are any commits in SVN in
      the range between the current revision $gs is at, and the top revision
      for which we were asked to fill history.  If there are commits we're
      missing in that range, we continue the fetch from the current revision
      to the top, properly getting all history before using it as the parent
      for the branch we're trying to create.
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      553589f7
  8. 03 12月, 2008 1 次提交
    • D
      git-svn: Make branch use correct svn-remote · a0fbc87c
      Deskin Miller 提交于
      The 'branch' subcommand incorrectly had the svn-remote to use hardcoded
      as 'svn', the default remote name.  This meant that branches derived
      from other svn-remotes would try to use the branch and tag configuration
      for the 'svn' remote, potentially copying would-be branches to the wrong
      place in SVN, into the branch namespace for another project.
      
      Fix this by using the remote name extracted from the svn info for the
      specified git ref.  Add a testcase for this behaviour.
      
      [jc: squashed in a fix to test from Michael J Gruber for older svn (1.4)]
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a0fbc87c
  9. 14 11月, 2008 4 次提交
    • M
      git-svn: Update git-svn to use the ability to place temporary files within repository directory · 1b3069a7
      Marten Svanfeldt (dev) 提交于
      This fixes git-svn within msys where Perl will provide temporary files with path
      such as /tmp while the git suit expects native Windows paths.
      Signed-off-by: NMarten Svanfeldt <developer@svanfeldt.com>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      1b3069a7
    • D
      git-svn: proper detection of bare repositories · fe4003f6
      Deskin Miller 提交于
      When in a bare repository (or .git, for that matter), git-svn would fail
      to initialise properly, since git rev-parse --show-cdup would not output
      anything.  However, git rev-parse --show-cdup actually returns an error
      code if it's really not in a git directory.
      
      Fix the issue by checking for an explicit error from git rev-parse, and
      setting $git_dir appropriately if instead it just does not output.
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      fe4003f6
    • E
      git-svn: respect i18n.commitencoding config · 16fc08e2
      Eric Wong 提交于
      SVN itself always stores log messages in the repository as
      UTF-8.  git always stores/retrieves everything as raw binary
      data with no transformations whatsoever.
      
      To interact with SVN, we need to encode log messages as UTF-8
      before sending them to SVN, as SVN cannot do it for us.  When
      retrieving log messages from SVN, we also need to (attempt to)
      reencode the UTF-8 log message back to the user-specified commit
      encoding.
      
      Note, handling i18n.logoutputencoding for "git svn log" also
      needs to be done in a future change.
      
      Also, this change only deals with the encoding of commit
      messages and nothing else (path names, blob content, ...).
      
      In-Reply-To: <8b168cfb0810282014r789ac01dnec51824de1078f0@mail.gmail.com>
      James North <tocapicha@gmail.com> wrote:
      > Hi,
      >
      > I'm using git-svn on a system with ISO-8859-1 encoding. The problem is
      > when I try to use "git svn dcommit" to send changes to a remote svn
      > (also ISO-8859-1).
      >
      > Seems like git-svn is sending commit messages with utf-8 (just a
      > guessing...) and they look bad on the remote svn log. E.g. "Ca?\241a
      > de cami?\243n"
      >
      > I have tried using i18n.commitencoding=ISO-8859-1 as suggested by the
      > warning when doing "git svn dcommit" but messages still are sent with
      > wrong encoding.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      16fc08e2
    • E
      git-svn: don't escape tilde ('~') for http(s) URLs · 6a004d3f
      Eric Wong 提交于
      Thanks to Jose Carlos Garcia Sogo and Björn Steinbrink for the
      bug report.
      
      On 2008.10.18 23:39:19 +0200, Björn Steinbrink wrote:
      > Hi,
      >
      > Jose Carlos Garcia Sogo reported on #git that a git-svn clone of this
      > svn repo fails for him:
      > https://sucs.org/~welshbyte/svn/backuptool/trunk
      >
      > I can reproduce that here with:
      > git-svn version 1.6.0.2.541.g46dc1.dirty (svn 1.5.1)
      >
      > The error message I get is:
      > Apache got a malformed URI: Unusable URI: it does not refer to this
      > repository at /usr/local/libexec/git-core/git-svn line 4057
      >
      > strace revealed that git-svn url-encodes ~ while svn does not do that.
      >
      > For svn we have:
      > write(5, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
      > <S:src-path>https://sucs.org/~welshbyte/svn/backuptool/trunk</S:src-path>...
      >
      > While git-svn shows:
      > write(7, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
      > <S:src-path>https://sucs.org/%7Ewelshbyte/svn/backuptool/trunk</S:src-path>...
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      6a004d3f
  10. 06 11月, 2008 3 次提交
    • D
      git-svn: proper detection of bare repositories · 6e5121f2
      Deskin Miller 提交于
      When in a bare repository (or .git, for that matter), git-svn would fail
      to initialise properly, since git rev-parse --show-cdup would not output
      anything.  However, git rev-parse --show-cdup actually returns an error
      code if it's really not in a git directory.
      
      Fix the issue by checking for an explicit error from git rev-parse, and
      setting $git_dir appropriately if instead it just does not output.
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      6e5121f2
    • E
      git-svn: respect i18n.commitencoding config · aab57205
      Eric Wong 提交于
      SVN itself always stores log messages in the repository as
      UTF-8.  git always stores/retrieves everything as raw binary
      data with no transformations whatsoever.
      
      To interact with SVN, we need to encode log messages as UTF-8
      before sending them to SVN, as SVN cannot do it for us.  When
      retrieving log messages from SVN, we also need to (attempt to)
      reencode the UTF-8 log message back to the user-specified commit
      encoding.
      
      Note, handling i18n.logoutputencoding for "git svn log" also
      needs to be done in a future change.
      
      Also, this change only deals with the encoding of commit
      messages and nothing else (path names, blob content, ...).
      
      In-Reply-To: <8b168cfb0810282014r789ac01dnec51824de1078f0@mail.gmail.com>
      James North <tocapicha@gmail.com> wrote:
      > Hi,
      >
      > I'm using git-svn on a system with ISO-8859-1 encoding. The problem is
      > when I try to use "git svn dcommit" to send changes to a remote svn
      > (also ISO-8859-1).
      >
      > Seems like git-svn is sending commit messages with utf-8 (just a
      > guessing...) and they look bad on the remote svn log. E.g. "Ca?\241a
      > de cami?\243n"
      >
      > I have tried using i18n.commitencoding=ISO-8859-1 as suggested by the
      > warning when doing "git svn dcommit" but messages still are sent with
      > wrong encoding.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      aab57205
    • E
      git-svn: don't escape tilde ('~') for http(s) URLs · 163f3689
      Eric Wong 提交于
      Thanks to Jose Carlos Garcia Sogo and Björn Steinbrink for the
      bug report.
      
      On 2008.10.18 23:39:19 +0200, Björn Steinbrink wrote:
      > Hi,
      >
      > Jose Carlos Garcia Sogo reported on #git that a git-svn clone of this
      > svn repo fails for him:
      > https://sucs.org/~welshbyte/svn/backuptool/trunk
      >
      > I can reproduce that here with:
      > git-svn version 1.6.0.2.541.g46dc1.dirty (svn 1.5.1)
      >
      > The error message I get is:
      > Apache got a malformed URI: Unusable URI: it does not refer to this
      > repository at /usr/local/libexec/git-core/git-svn line 4057
      >
      > strace revealed that git-svn url-encodes ~ while svn does not do that.
      >
      > For svn we have:
      > write(5, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
      > <S:src-path>https://sucs.org/~welshbyte/svn/backuptool/trunk</S:src-path>...
      >
      > While git-svn shows:
      > write(7, "<S:update-report send-all=\"true\" xmlns:S=\"svn:\">
      > <S:src-path>https://sucs.org/%7Ewelshbyte/svn/backuptool/trunk</S:src-path>...
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      163f3689
  11. 31 10月, 2008 1 次提交
  12. 25 10月, 2008 1 次提交
  13. 07 10月, 2008 1 次提交
  14. 01 10月, 2008 1 次提交
  15. 22 9月, 2008 1 次提交
    • D
      git-svn: do a partial rebuild if rev_map is out-of-date · 2beec897
      Deskin Miller 提交于
      Suppose you're using git-svn to work with a certain SVN repository.
      Since you don't like 'git-svn fetch' to take forever, and you don't want
      to accidentally interrupt it and end up corrupting your repository, you
      set up a remote Git repository to mirror the SVN repository, which does
      its own 'git-svn fetch' on a cronjob; now you can 'git-fetch' from the
      Git mirror into your local repository, and still dcommit to SVN when you
      have changes to push.
      
      After you do this, though, git-svn will get very confused if you ever
      try to do 'git-svn fetch' in your local repository again, since its
      rev_map will differ from the branch's head, and it will be unable to
      fetch new commits from SVN because of the metadata conflict.  But all
      the necessary metadata are there in the Git commit message; git-svn
      already knows how to rebuild rev_map files that get blown away, by
      using the metadata.
      
      This patch teaches git-svn do a partial rebuild of the rev_map to
      match the true state of the branch, if it ever is used to fetch again.
      
      This will only work for projects not using either noMetadata or
      useSvmProps configuration options; if you are using these options,
      git-svn will fall back to the previous behaviour.
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2beec897
  16. 19 9月, 2008 2 次提交
  17. 11 9月, 2008 2 次提交
  18. 07 9月, 2008 2 次提交
  19. 06 9月, 2008 5 次提交