I just joined this list a few minutes ago so hopefully replies to the list will 
get to me, without needing to cc me.  When we branch we change the groupID and 
some other values in the poms of our modules.  When we merge back we have to be 
extremely careful not to merge the pom changes back to trunk.  I would like to 
somehow have the merge ignore the commit that changed the pom values.  I 
thought using --record-only would be the solution to my problem but it doesn't 
appear to be working the way I expect.  Below are the commands I am running.

Workflow:
Svn commit -m 'Update poms to reflect new groupId.' ${working.copy}
Svn update
Svnversion -> and save in property "rev"
Svn co ${project.base.url}/${source.id} ${trunk}
Cd ${trunk}
Svn merge -c ${rev} --record-only ${branch.url}
Svn commit -m 'commit a record-only merge of ${rev} so trunk will never get the 
pom/project value changes'

In this case ${rev} was equal to 67615.  If I run the following command I get a 
list of 67617, 67623, and 67624 which are my actual code changes:
Svn mergeinfo -show-revs eligible [branch URL] [trunk URL]

After this I go to my local trunk copy and do an update.  Then if I run this 
command:
Svn merge --reintegrate [branch URL]
I get the pom changes I don't want

But if I run this command:
Svn merge [branch URL]
Then I get only the actual changes and not the pom changes.

Am I doing something wrong here, or will reintegrate not work with the fact 
that I want to ignore a specific commit?  I've been trying to read about 
reintegrate vs regular merge and have gotten kinda confused.  The best I came 
up with was that you don't want to do a regular merge when merging the feature 
branch back to trunk because the revision range won't be contiguous because of 
trunk merges throughout the life cycle of the branch.  And that reintegrate 
isn't doing what I want it to because it takes the point the branch was created 
and does a diff with the trunk and just ignores mergeinfo.

Thanks,
Will

Reply via email to