Hi,

On Wednesday, 2011-09-07 15:43:13 +0200, Eike Rathke wrote:

> I'll first grab calc68 and try my luck ;)

Did so with a git svn repository, see another thread
Message-ID: <j3frmh$6of$1...@dough.gmane.org>
http://mail-archives.apache.org/mod_mbox/incubator-ooo-dev/201108.mbox/%3Cj3frmh$6of$1...@dough.gmane.org%3E
You'll also need StGit to be installed and in the git svn repository
have once executed stg init. I took notes on each step, commands to be
executed are prefixed with $

In a temporary location do
$ hg clone -U http://hg.services.openoffice.org/OOO340
$ hg clone -U http://hg.services.openoffice.org/calc68

1. EIS data said calc68's current milestone is OOO340_m0.
   Lookup tag OOO340_m0 in OOO340 with 
   $ hg log | less
*  Result is 12fa3ee3d107.

2. Lookup 12fa3ee3d107 in calc68 with
   $ hg log | less
   * Verify that no OOO340 masterfix is above that revision, if there
     are lookup the topmost masterfix.
*  Next changeset on top in calc68 is af32685ae575

3. Export all changesets starting with that, note the trailing : colon
   $ hg export --git -o %b-%N-%n af32685ae575:
*  Result are files calc68-5-1, calc68-5-2, ...

4. In the git svn AOOo repository, for each generated patch file do:
   $ stg import --reject patchfile
   * Resolve any merge errors, merge changes from *.rej to corresponding
     source files.
   $ stg refresh
   $ stg edit
   * In editor:
     * Verify that cwsname: (here calc68:) precedes the commit message
       summary for easy identification.
     * Move the  "# User"  line to give credit below the commit message,
       separated by a blank line.
     * I replaced  "# User"  with  "Original committer:", but that's not
       important, I think I won't do that for other CWSs anymore, it's
       just another cumbersome step, and leave it as is instead.
     * Delete other lines prefixed with '#'.
     * Save & Quit.

5. Loop 4 until all patches are applied.

6. When all patches are applied:
   $ stg show -a
   * Verify that commit messages and diffs (if possible) look sane.
     * If not
       $ stg pop
         until at the desired patch and stg edit or massage source and
         stg refresh, whatever..
       $ stg push -a

7. Build and deliver the affected modules in the correct order (or top make)
   * If there are errors:
     $ stg new
     * In editor invoked for the commit message enter short summary,
       e.g.  cwsname: fix build errors
     * Save & Quit.
     7a) Fix errors.
     * Rebuild. Loop 7a until clean.
     $ stg refresh

8. No (more) errors:
   $ stg commit -a
   $ git svn rebase
   * Resolve merge errors, if any, and if so and resolved
     $ git rebase --continue

9. Finally the commit to the SVN repository:
   $ git svn dcommit
   * If you originally did  git svn clone https://svn.apache.org/...
     instead of  git svn clone https://svn-master.apache.org/...
     this may need several iterations of
     $ git svn dcommit
     $ git svn rebase
     until the mirror is in line with all commits.

10. $ git svn rebase
    to make sure your local repository is up-to-date, it should say
    "Current branch master is up to date."


I hope this is detailed enough ;-)

  Eike

-- 
 PGP/OpenPGP/GnuPG encrypted mail preferred in all private communication.
 Key ID: 0x293C05FD - 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD

Attachment: signature.asc
Description: Digital signature

Reply via email to