List:Internals« Previous MessageNext Message »
From:MARK CALLAGHAN Date:February 26 2010 9:21pm
Subject:I want to share, but bzr/launchpad won't let me
View as plain text  
I am trying to publish the Facebook patch for MySQL 5.1. Not knowing
that 5.1 releases are tagged in the 5.1 launchpad branch, I started by
importing source from mysql-5.1.44.tar.gz and then did one commit per
commit from our local git repo. I want to import those commits to a
branch I made based on the 5.1.44 tag of the MySQL 5.1 branch in
launchpad. Apparently, that isn't trivial as the merge command does
way more than apply the specified revision. For the command below
'/s/bzr/fb/5.1' is my bzr branch that started from the import of
mysql-5.1.44.tar.gz and the command is run in the branch created by
"bzr branch -r tag:mysql-5.1.44 5.1 5.1facebook"

I guess I can write an awk script to parse 'bzr log -p' and split it
into two files per commit (one for the diff, one for the commit
message) and then write a script to replay those. There should be
minimal diffs as the destination branch is 5.1.44 in launchpad and the
source branch started out from mysql-5.1.44.tar.gz.  I have read a bit
about bzr and consulted Domas and read
http://doc.bazaar.canonical.com/latest/en/user-guide/adv_merging.html
and am surprised that this isn't easy to do. The URL cited states that
cherry picking is easy to do. It doesn't work at all for me with bzr.

Can mysql move to git?

Running:

bzr merge -v -c revno:2 /s/bzr/fb/5.1

And I get output like:
+N  configure.OTHER
+N  configure.in.OTHER
+N  storage/
+N  storage/innodb_plugin/
+N  storage/innodb_plugin/plug.in.OTHER
R   storage/ => storage.moved/
Conflict adding files to BUILD.  Moved to root.
Conflict adding files to CMakeLists.txt.  Moved to root.
Conflict adding files to COPYING.  Moved to root.
Conflict adding files to ChangeLog.  Moved to root.
Conflict adding files to Docs.  Moved to root.
Conflict adding files to EXCEPTIONS-CLIENT.  Moved to root.
Conflict adding files to INSTALL-SOURCE.  Moved to root.
Conflict adding files to INSTALL-WIN-SOURCE.  Moved to root.
Conflict adding files to Makefile.am.  Moved to root.
Conflict adding files to Makefile.in.  Moved to root.
Conflict adding files to README.  Moved to root.
Conflict adding files to aclocal.m4.  Moved to root.
Conflict adding files to client.  Moved to root.
Conflict adding files to cmd-line-utils.  Moved to root.
Conflict adding files to config.  Moved to root.
Conflict adding files to config.guess.  Moved to root.
Conflict adding files to config.sub.  Moved to root.
Contents conflict in configure
Conflict adding files to configure.  Moved to root.
Conflict adding files to configure.BASE.  Moved to root.
Conflict adding files to configure.OTHER.  Moved to root.
Contents conflict in configure.in
Conflict adding files to configure.in.  Moved to root.
Conflict adding files to configure.in.BASE.  Moved to root.
Conflict adding files to configure.in.OTHER.  Moved to root.
Conflict adding files to dbug.  Moved to root.
Conflict adding files to depcomp.  Moved to root.
Conflict adding files to extra.  Moved to root.
Conflict adding files to include.  Moved to root.
Conflict adding files to install-sh.  Moved to root.
Conflict adding files to libmysql.  Moved to root.
Conflict adding files to libmysql_r.  Moved to root.
Conflict adding files to libmysqld.  Moved to root.
Conflict adding files to ltmain.sh.  Moved to root.
Conflict adding files to man.  Moved to root.
Conflict adding files to missing.  Moved to root.
Conflict adding files to mysql-test.  Moved to root.
Conflict adding files to mysys.  Moved to root.
Conflict adding files to netware.  Moved to root.
Conflict adding files to plugin.  Moved to root.
Conflict adding files to pstack.  Moved to root.
Conflict adding files to regex.  Moved to root.
Conflict adding files to scripts.  Moved to root.
Conflict adding files to server-tools.  Moved to root.
Conflict adding files to sql.  Moved to root.
Conflict adding files to sql-bench.  Moved to root.
Conflict adding files to sql-common.  Moved to root.
Conflict adding files to storage.  Moved to root.
Conflict adding files to storage.  Created directory.
Conflict because storage is not versioned, but has versioned children.
 Versioned directory.
Conflict adding file storage.  Moved existing file to storage.moved.
Conflict adding files to storage/innodb_plugin.  Created directory.
Conflict because storage/innodb_plugin is not versioned, but has
versioned children.  Versioned directory.
Contents conflict in storage/innodb_plugin/plug.in
Conflict adding files to strings.  Moved to root.
Conflict adding files to support-files.  Moved to root.
Conflict adding files to tests.  Moved to root.
Conflict adding files to unittest.  Moved to root.
Conflict adding files to vio.  Moved to root.
Conflict adding files to win.  Moved to root.
Conflict adding files to ylwrap.  Moved to root.
Conflict adding files to zlib.  Moved to root.
62 conflicts encountered.

The diff from the revision I want to apply is small and should not
result in the conflicts mentioned above:
=== modified file 'configure'
--- configure	2010-02-25 17:00:29 +0000
+++ configure	2010-02-25 17:19:37 +0000
@@ -49964,7 +49964,7 @@
     MAN_DROP="$MAN_DROP embedded"
     grep -v 'embedded' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL
$MANLISTFIL
   fi
-  if test X"$with_plugin_innobase" != Xyes
+  if test X"$with_plugin_innobase" != Xyes -a
X"$with_plugin_innodb_plugin" != Xyes
   then
     MAN_DROP="$MAN_DROP innodb"
     grep -v 'inno' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
@@ -50070,7 +50070,7 @@
 fi

 # "innochecksum" is not in the "innobase/" subdirectory, but should be switched
- if test X"$with_plugin_innobase" = Xyes; then
+ if test X"$with_plugin_innobase" = Xyes -o
X"$with_plugin_innodb_plugin" = Xyes; then
   BUILD_INNODB_TOOLS_TRUE=
   BUILD_INNODB_TOOLS_FALSE='#'
 else

=== modified file 'configure.in'
--- configure.in	2010-02-25 17:00:29 +0000
+++ configure.in	2010-02-25 17:19:37 +0000
@@ -2752,7 +2752,7 @@
     MAN_DROP="$MAN_DROP embedded"
     grep -v 'embedded' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL
$MANLISTFIL
   fi
-  if test X"$with_plugin_innobase" != Xyes
+  if test X"$with_plugin_innobase" != Xyes -a
X"$with_plugin_innodb_plugin" != Xyes
   then
     MAN_DROP="$MAN_DROP innodb"
     grep -v 'inno' $MANLISTFIL > $TMPLISTFIL ; mv -f $TMPLISTFIL $MANLISTFIL
@@ -2831,7 +2831,7 @@
 fi

 # "innochecksum" is not in the "innobase/" subdirectory, but should be switched
-AM_CONDITIONAL([BUILD_INNODB_TOOLS], [test X"$with_plugin_innobase" = Xyes])
+AM_CONDITIONAL([BUILD_INNODB_TOOLS], [test X"$with_plugin_innobase" =
Xyes -o X"$with_plugin_innodb_plugin" = Xyes])

 # IMPORTANT - do not modify LIBS past this line - this hack is the only way
 # I know to add the static NSS magic if we have static NSS libraries with

=== modified file 'storage/innodb_plugin/plug.in'
--- storage/innodb_plugin/plug.in	2010-02-25 17:00:29 +0000
+++ storage/innodb_plugin/plug.in	2010-02-25 17:19:37 +0000
@@ -17,6 +17,7 @@
 MYSQL_STORAGE_ENGINE(innodb_plugin,, [InnoDB Storage Engine],
         [Transactional Tables using InnoDB], [max,max-no-ndb])
 MYSQL_PLUGIN_DIRECTORY(innodb_plugin, [storage/innodb_plugin])
+MYSQL_PLUGIN_STATIC(innodb_plugin,  [libinnobase.a])
 MYSQL_PLUGIN_DYNAMIC(innodb_plugin,  [ha_innodb_plugin.la])
 MYSQL_PLUGIN_ACTIONS(innodb_plugin,  [
   AC_CHECK_HEADERS(sched.h)


-- 
Mark Callaghan
mdcallag@stripped
Thread
I want to share, but bzr/launchpad won't let meMARK CALLAGHAN26 Feb
  • Re: I want to share, but bzr/launchpad won't let meJonas Oreland26 Feb
  • Re: I want to share, but bzr/launchpad won't let meDavi Arnaut26 Feb
    • Re: I want to share, but bzr/launchpad won't let meStewart Smith1 Mar
      • Re: I want to share, but bzr/launchpad won't let meGuilhem Bichot5 Mar
        • Re: I want to share, but bzr/launchpad won't let meJonas Oreland5 Mar
          • Re: I want to share, but bzr/launchpad won't let meGuilhem Bichot5 Mar
            • Re: I want to share, but bzr/launchpad won't let meJonas Oreland5 Mar
  • Re: I want to share, but bzr/launchpad won't let meGuilhem Bichot5 Mar
    • Re: I want to share, but bzr/launchpad won't let meMARK CALLAGHAN17 Mar