git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: James Mason <James.Mason@3ds.com>
To: <git@vger.kernel.org>
Subject: How to perform efficient incremental update of a git repo from a large SVN repo? Bug or clueless user?
Date: Wed, 12 Dec 2018 14:19:25 -0500	[thread overview]
Message-ID: <9181bfae-8a36-2051-179f-438706ba7968@3ds.com> (raw)

I have a large and active SVN repository.  More than 36,000 revisions,
thousands of branches - new ones created daily - and a non-standard
layout.  Also, a secondary git repository that serves as a faithful
"git" copy of the work accumulating in SVN (git version 2.9.5).  I seek
an efficient way to routinely (nightly?) update the git repo with new
changes accumulating in SVN.

Most of what I have found on the web suggests that, when properly
configured, incremental update will be correctly accomplished by "git
svn fetch".  My experience so far is that - while that will eventually
work - it is remarkably slow.  It's true that "git svn fetch" doesn't
redundantly add content - but it doesn't resume without appearing to
walk over all the old SVN revisions (watch the contents of
svn/.metadata).  For a large SVN repository - this can take days.

I initially posed this as a question on stack overflow (see "Routinely
updating a git repo from a large svn repo" ).  It appeared that I had
learned something about how to use "--revision" to speed things along -
so I recently added that as an answer to my own question (update now
taking routinely less than an hour).  Still that all seemed really odd.
"--revision" isn't documented as an option to "git svn fetch", you need
to dig START out of .git/svn/.metadata and END out of the SVN repository.

Today I searched on the string "branches-MaxRev" and found something
more explicitly at odds with my experience (in the git-svn document):

     Note that git-svn keeps track of the highest revision in which a
branch or tag has appeared. If the subset of
     branches or tags is changed after fetching, then
$GIT_DIR/svn/.metadata must be manually edited to remove
     (or reset) branches-maxRev and/or tags-maxRev as appropriate."

I read the documentation as saying that "git svn fetch" tracks where it
left off (which was my assumption before experiencing otherwise).   So
what I'm seeing seems like a bug - but I'm worried that my use of
"--revision" may not be entirely legitimate.

Any assistance, advice, etc., would be most appreciated.

-jrm

This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged.

If you are not one of the named recipients or have received this email in error,

(i) you should not read, disclose, or copy it,

(ii) please notify sender of your receipt by reply email and delete this email and all attachments,

(iii) Dassault Systèmes does not accept or assume any liability or responsibility for any use of or reliance on this email.


Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.compliance-privacy@3ds.com<mailto:3DS.compliance-privacy@3ds.com>


For other languages, go to https://www.3ds.com/terms/email-disclaimer

             reply	other threads:[~2018-12-12 20:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-12 19:19 James Mason [this message]
2018-12-12 21:37 ` How to perform efficient incremental update of a git repo from a large SVN repo? Bug or clueless user? Mateusz Loskot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9181bfae-8a36-2051-179f-438706ba7968@3ds.com \
    --to=james.mason@3ds.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).