git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re[3]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

From
IBIlya Basin <basinilya@gmail.com>
Date
May 6, 2013, 08:58 UTC
Message-ID
<366899002.20130506125846@gmail.com>
In-Reply-To
<12810110770.20130502213124@gmail.com>

Hi Eric. I'm out of spare time and I still unable to import my repo. The code of SVN.pm is too complex. Please help me. Here's the list of my issues:

* I think git-svn doesn't handle the case, when a tag is deleted.
  I expected it to rename the ref from "tags/tagname" to
  "tags/tagname@rev", but that doesn't happen.
  If a tag is replaced, there's no way to tell what was the previous
  state of that tag: git-svn just rewrites the ref.
  On the contrary, the temporary refs (with "@rev" suffix), used for
  re-import subdir tags are kept after successful reimport, although
  they have no usage.
* As I said already, I have 25k revisions and 200 tags created from
  subdirs in trunk. This increases the import time from 2h to 12h.
  I would bear it, if it had to be done once, but fetching a new
  revision may cause re-import of all 25k revisions too.
  You should implement some mechanism to find the parent branches of
  subdir tags. Maybe the unused refs I mentioned in the previous issue
  are good candidates for that, but I would name them somehow
  different to distinguish with deleted/replaced tags/branches.
* There are mistake commits in the svn history, similar to this:
    ------------------------------------------------------------------------
    r21255 | xxx_xxxxxx_xxxxxxxxx | 2012-03-02 18:46:30 +0300 (Fri, 02 Mar 2012) | 1 line
    Changed paths:
      A /tags/dmagentenabler-4.1.31/DMAgent (from /tags:20998)
    
    Delivery 4.1.31
    ------------------------------------------------------------------------
  git-svn tries to creates a tag, containing dirs with other tags.
  Technically, behaves correctly, but it hangs, because of the size of
  the commit.
  To solve it, I had to edit the svn dump file:
     Node-path: tags/dmagentenabler-4.1.31/DMAgent
     Node-kind: dir
     Node-action: add
    -Node-copyfrom-rev: 20998
    -Node-copyfrom-path: tags
    +Prop-content-length: 10
    +Content-length: 10
    +
    +PROPS-END
     
     
     Revision-number: 21256
  It creates an empty dir, instead of copying. Since the author
  noticed the mistake, he immediately deleted the dir in the next
  revision, so it works.
Previous: Ilya BasinNext: Eric Wong
Message 13 of 18 in “Re: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()”
  1. Ilya BasinMay 1, 2013
  2. Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 1, 2013
  3. Junio C HamanoMay 1, 2013
  4. Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 1, 2013
  5. Eric WongMay 1, 2013
  6. Junio C HamanoMay 1, 2013
  7. Eric WongMay 2, 2013
  8. Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 2, 2013
  9. Eric WongMay 2, 2013
  10. Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 3, 2013
  11. Re[3]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 3, 2013
  12. Re[4]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 6, 2013
  13. Re[3]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 6, 2013
  14. Eric WongMay 9, 2013
  15. Re[4]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 28, 2013
  16. Ray ChenMay 2, 2013
  17. Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()Ilya Basin, May 2, 2013
  18. Eric WongMay 2, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.