About hg --> git then git --> svn

== hg --> git ==

Finish !

It take approx 40h to complete (someone to math over-the-thumb ? :))

Result it that it's "seems" to import merge... I have not time for more investigation, I copy/paste bellow outputs that give me this feeling [1].

diff -r between hg and git is really clean :
Only in git_repos/: .git
Only in OOO340_local/: .hg
Only in OOO340_local/: .hgtags

== git --> svn ==

I actually do the rebase (seems to take time), this is the penultimate before real svn import...

I will be out of this machine tomorrow for 5 days... hope I can fire the last command before going.

== get git repos ==
I currently upload the git repos to people.apache.org if you want to play with.

== [1] ==

=== After ht to git command ===
Exporting tag [DEV300_m106] at [hg r276728] [git :276729]
Exporting tag [OOO340_m0] at [hg r276743] [git :276744]
Issued 277030 commands
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects:    2235000
Total objects:      2233937 (   8097599 duplicates                  )
      blobs  :       549813 (   7325130 duplicates     472589 deltas)
      trees  :      1407193 (    772469 duplicates    1192144 deltas)
      commits:       276931 (         0 duplicates          0 deltas)
      tags   :            0 (         0 duplicates          0 deltas)
Total branches:         100 (         1 loads     )
      marks:        1048576 (    276931 unique    )
      atoms:          56682
Memory total:        115159 KiB
       pools:         10394 KiB
     objects:        104765 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit      = 8589934592
pack_report: pack_used_ctr            =   20176769
pack_report: pack_mmap_calls          =     702302
pack_report: pack_open_windows        =          4 /          9
pack_report: pack_mapped              = 3397905146 / 8589934592
---------------------------------------------------------------------

=== Git log ===

commit c1a19b7f2fbd65d7c8b8a4cb32bdf1c3b418f92c
Author: Martin Hollmichel <[email protected]>
Date:   Mon May 9 14:07:54 2011 +0200

    corrected merge of gridfixes cws integration

commit 032eda538088ed2009223a8063e2c143636b6dd0
Author: Martin Hollmichel <[email protected]>
Date:   Fri May 6 08:13:12 2011 +0200

    OOO340_m1

commit 9479cbfd2fc76106b1beb5e9ede70300241d23bc
Merge: 450b957 4e28838
Author: Kurt Zenker <[email protected]>
Date:   Thu Apr 14 15:47:03 2011 +0200

    CWS-TOOLING: integrate CWS obic007_OOO340

commit 450b9579887579f2498d24aeff1274678ca2051e
Merge: 1b8c3ce 7b335b1
Author: Kurt Zenker <[email protected]>
Date:   Thu Apr 14 15:29:52 2011 +0200

    CWS-TOOLING: integrate CWS fs34b_OOO340

commit 1b8c3ce1fcbd5d4d62ebfd28d1942d6b68e0d83e
Merge: aed026c 0461b2b
Author: Kurt Zenker <[email protected]>
Date:   Thu Apr 14 13:14:35 2011 +0200

    CWS-TOOLING: integrate CWS l10ndev300m106_OOO340

== git fetch origin ==

From /home/florent/dev/dev-apache/OoO/import/git_repos
 * [new branch]      master     -> origin/master
From /home/florent/dev/dev-apache/OoO/import/git_repos
 * [new tag]         DEV300_last_svn_milestone -> DEV300_last_svn_milestone
 * [new tag]         DEV300_m100 -> DEV300_m100
 * [new tag]         DEV300_m101 -> DEV300_m101
 * [new tag]         DEV300_m102 -> DEV300_m102
 * [new tag]         DEV300_m103 -> DEV300_m103
 * [new tag]         DEV300_m104 -> DEV300_m104
 * [new tag]         DEV300_m105 -> DEV300_m105
 * [new tag]         DEV300_m106 -> DEV300_m106
 * [new tag]         DEV300_m31 -> DEV300_m31
 * [new tag]         DEV300_m32 -> DEV300_m32
 * [new tag]         DEV300_m33 -> DEV300_m33
 * [new tag]         DEV300_m34 -> DEV300_m34
 * [new tag]         DEV300_m35 -> DEV300_m35
 * [new tag]         DEV300_m36 -> DEV300_m36
 * [new tag]         DEV300_m37 -> DEV300_m37
 * [new tag]         DEV300_m38 -> DEV300_m38
 * [new tag]         DEV300_m39 -> DEV300_m39
 * [new tag]         DEV300_m40 -> DEV300_m40
 * [new tag]         DEV300_m41 -> DEV300_m41
 * [new tag]         DEV300_m42 -> DEV300_m42
 * [new tag]         DEV300_m43 -> DEV300_m43
 * [new tag]         DEV300_m44 -> DEV300_m44
 * [new tag]         DEV300_m45 -> DEV300_m45
 * [new tag]         DEV300_m46 -> DEV300_m46
 * [new tag]         DEV300_m47 -> DEV300_m47
 * [new tag]         DEV300_m48 -> DEV300_m48
...
 * [new tag]         OOO330_m13 -> OOO330_m13
 * [new tag]         OOO330_m14 -> OOO330_m14
 * [new tag]         OOO330_m15 -> OOO330_m15
 * [new tag]         OOO330_m16 -> OOO330_m16
 * [new tag]         OOO330_m17 -> OOO330_m17
 * [new tag]         OOO330_m18 -> OOO330_m18
 * [new tag]         OOO330_m19 -> OOO330_m19
 * [new tag]         OOO330_m2  -> OOO330_m2
 * [new tag]         OOO330_m20 -> OOO330_m20
 * [new tag]         OOO330_m3  -> OOO330_m3
 * [new tag]         OOO330_m4  -> OOO330_m4
 * [new tag]         OOO330_m5  -> OOO330_m5
 * [new tag]         OOO330_m6  -> OOO330_m6
 * [new tag]         OOO330_m7  -> OOO330_m7
 * [new tag]         OOO330_m8  -> OOO330_m8
 * [new tag]         OOO330_m9  -> OOO330_m9
 * [new tag]         OOO340_m0  -> OOO340_m0




On 07/27/2011 06:07 PM, florent andré wrote:
I manage(d) another try :

hg --> git

This is currently in process. After 20h a little bit more than 180000
rev are exported to git.
Will wait some hours more to see what append, but so far so good.

git --> svn

This is the second step of my idea, in order to see if it's more faster
with this conversion.
But have to wait the hg --> git finishing.

hg --> svn

Do another try with only the 30 last revisions with the same script
(start revision configurable)

This work pretty well (just a little special case with [email protected] file).
And
$ diff -r svn-repos/ hg-repos/ > diff-result
$ cat diff-result | grep -v ".svn"

relevant results only show 2 empty folders in svn repos that are not
still present in hg one :
offapi/drafts/
smoketestoo_native/com/

=========

So, without a really good surprise from the git --> svn conversion, it's
clearly appear that it will not be manageable to import all history in
svn [1].

So 2 options :

1) Import all the code without history. Have to check history into hg or
git (have to wait if conversion goes well to the end)

2) Define a "good" starting revision, were good means :
* enough history in svn for pretty well being
* time reasonable computation (over-the-thumb-maths says [ :) ]
approximately 250 commits/hour)


What do you think ?
++


[1] at least with my material, may a really BIG machine can lower time,
but I doubt it will achieve it in reasonable time.


On 07/26/2011 03:53 PM, Michael Stahl wrote:
On 26.07.2011 13:51, florent andré wrote:
Hi there,

I actually run a script [1] on my local laptop and online svn serveur
that import the OOO340 hg to an svn trunk folder.

For now, it's work pretty well - get all history from OO340 - with good
commit log e.g. :
-------
Added:
ooo/trunk/trunk/xmloff/source/text/XMLTextColumnsContext.cxx
Modified:
ooo/trunk/trunk/xmloff/source/text/XMLTextPropertySetContext.cxx
ooo/trunk/trunk/xmloff/source/text/makefile.mk
Log:
changeset: 41:196d10f76091
user: mib
date: Thu Sep 21 09:48:30 2000 +0000
text column import
--------

But, as it simulate all svn commit, it's a little bit long...
Actually on 45/276930 revision.

well, the first 263206 revisions are the easy ones, because they're
linear :)

btw, what script are you using?

what will it do with merge revisions?

If the process goes well to the end, what could be the next step ?
Restart this script on the apache svn or extract some kind of svn dump
from my svn-serveur and import it ?

presumably it ought to be possible and easiest to import an SVN dump,
but i'm no SVN expert...

regards,
michael

Reply via email to