monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Steps to break propagation....


From: J Decker
Subject: [Monotone-devel] Steps to break propagation....
Date: Thu, 9 Nov 2006 19:18:18 -0800

Attached is a batch that creates a folder called project1, goes into it, creates a db with some junk key, makes some branches, adds some files, does some commits, and at the end fails.

Basically I've been maintaining a branch that developers develop on, on one side, and made a branch specifically to handle SVN synching.

At some point, I updated the repository from SVN, and commited it into monotone... svn update, mtn drop --missing, mtn add --unknown, mtn commit.


--- this is where I messed up...
I then wanted those changes on the main development branch that we use, so I propagated the svnsync to the mainline branch.
then I updated the mainline branch and attempted to compile the code... but there were many incomplete changes in the svn repository at that time...
so I wanted to back out the propagate (which was a case of  mtn: no merge necessary; putting 1f04277a396a7633c997309b26e6e7a03cfc4977 in branch 'branch1', for isntance)

I then applied the disapprove command on that head in the mainline branch, and updated to get back to a working state.

now, later, I updated the svn branch, and attempted to propagate the changes ot the main branch, but the disapproval included removing some additional directories/files that were added in the first case... so now, they still exist in the svn branch, and should exist now...

Instead of 'disapprove' what if there was a sort of 'defer' command to act like a disapproval, and unwind the changes made, but when it comes time to re-propagate or re-merge the code, it doesn't have any sort of authority... or something...


set KEY=address@hidden
mtn --db=junk.db db init
mtn --db=junk.db genkey %KEY%
mkdir branch1
mkdir branch2
mtn --db=junk.db --branch=branch1 --key=%KEY% setup branch1
cd branch1
echo "trunk" >file
mtn add file
mtn commit -m "add first file"
cd ..
cd branch2
mtn --db=../junk.db --branch=branch1 --key=%KEY% co .
echo "branch mod 1" >> file
mtn commit -m "Modify a file on branch" --branch=branch2
echo synchronize branch1 with branch2
mtn propagate branch2 branch1
cd ..
cd branch1
mtn update
echo "do some more work" >>file
mtn commit -m "Update common working branch"
cd ..
mtn --db=junk.db propagate branch1 branch2 --key=%KEY%
cd branch2
mtn update
echo "external branch mod" >>file
mkdir test1
cd test1
echo "extra file goes here" >file2
mtn add file2
mtn commit -m "Added a file... perhaps some other mods"

cd ..
cd ..

mtn --db=junk.db propagate branch2 branch1 --key=%KEY%

:------------------------
: at this point, the changes made to branch2 cause the build to break badly all over the place
: I want to undo the propagation from branch2 to branch1

mtn --db=junk.db --branch=branch1 head
echo will disapprove 1f04277a396a7633c997309b26e6e7a03cfc4977
mtn --db=junk.db --branch=branch1 disapprove 1f04277a396a7633c997309b26e6e7a03cfc4977 --key=%KEY%

:....

cd branch2
cd test1
echo "Add another file to propagate later" >file3
mtn add file3
mtn commit -m "Added more stuff to sync branch"
cd ..

: failure here
mtn propagate branch2 branch1
cd ..









Attachment: whatidid.bat.dontrunme
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]