Hi Damjan;

As you note, when there are so many changes merging is painful.
You generally try to do all your work in a branch and sync
frequently with trunk. It is difficult to give advice when
there are years of differences between the branch and trunk.

You can merge by ranges instead of individual files. This is
probably better if you try to bring the branch up to date.
The inverse, merging from the branch, involves you testing
the build before committing (and last time I remember the
gbuild branch was not working on FreeBSD BTW).

So you could, for example, bring the changes that are unrelated
to the build and later merge the build changes with your fixes.

About credits: you don't need to give specific credits when
merging; we have the SVN log for that. If you want to make clear
you are including local changes produced just add a line about
it to the log. Perhaps something like this (I made this up, of
course):

______
Merge from Trunk up to:  r1409397:1560309

Brings updates to all components included in 4.1-Release.

Includes extensive changes to the gbuild support in svk
and ICU modules to accommodate for the update of libpng.

Build updates by:       me
_______


Note that the process is not different from obtaining patches with
"svn diff" but subversion is supposed to know a bit about how merging is done (OK some people may not agree here).

Pedro.


On 02/15/16 21:12, Pedro Giffuni wrote:
Hi Damjan;

The key lies in "svn merge". You may lose part of the history but
most of it should survive in form of mergeinfo.


A while ago I documented how to work with branches somewhere in
cwiki (based on FreeBSD's svn primer). An executive summary:

- Do a sparse check out of the root AOO tree so you get the
root of the tree but the branches do not spend space in
your harddisk.
- cd to trunk (or the branch) where you will be doing your merging.
- You should have the complete tree "svn up --set-depth=infinity"
for the main tree where you will merge the changes.
- "svn merge" the revision(s) that you need refering to the relative
tree for the branch you are merging. It's probably easier to do
this one by one resolving conflicts as you go.

Example:

(I already did the sparse checkout + the complete checkout of
main in my tree).

% pwd
/home/pfg/aoo/trunk

% ls ../branches
AOO34           alg             l10n40          pfg
AOO400          capstone2013    ooxml           sidebar
AOO401          gbuild          ooxml-osba      win8build
AOO410          ia2             patch-hsqldb19  writer001

  % svn merge -c r1409397 ../branches/gbuild .
--- Merging r1409397 into '.':
C    main/svx/Package_inc.mk
U    main/svx/AllLangResTarget_svx.mk
--- Recording mergeinfo for merge of r1409397 into '.':
  U   .
Summary of conflicts:
   Text conflicts: 1
Conflict discovered in file 'main/svx/Package_inc.mk'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
         (mc) my side of conflict, (tc) their side of conflict,
         (s) show all options: tc
Resolved conflicted state of 'main/svx/Package_inc.mk'
Summary of conflicts:
   Text conflicts: 0 remaining (and 1 already resolved)
..
(fix, merge next type of fun)
___

Hope that helps,

Pedro.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to