As development continues on the parent branch from which you shadowed or derived, you may find a need to bring in those changes on your own development branch. Before merging, be sure to compare revisions of the package source between the target packages:
Compare Two Packages (conary) -- Use the
--file-versions option with the conary repquery
command to see what files are different between any two packages. In the following
example, the user is querying httpd:runtime to see what is different
from the parent branch and his own development branch, where he has a derived package. The
output shows that the file httpd.conf has a derived version on
example.rpath.org@corp:devel while the file
magic is obtained from the parent branch
(conary.rpath.com@rpl:devel//1):
$> conary rq httpd:runtime=example.rpath.org@corp:devel --file-versions --full-versions /etc/httpd/conf/httpd.conf /conary.rpath.com@rpl:devel//1//example.rpath.org@corp:devel/2.0.55-7.0.1-1 /etc/httpd/conf/magic /conary.rpath.com@rpl:devel//1//2.0.54-2-2
Compare Between Labels in the Repository (cvc) -- Use
cvc rdiff to compare revisions of the same source between labels. The
following example compares the latest committed versions of the shadow and parent:
$> cvc rdiff splashy-theme example.rpath.org@corp:devel conary.rpath.com@rpl:2
Compare Between Your Checkout and a Label in the Repository (cvc)
-- Use cvc diff to view the modifications made to a checked out copy of
package source against those on a given label. Run the command from the local directory
where you've checked out your package. The following example compares the current checkout
directory with its project example:
$> cvc diff conary.rpath.com@rpl:2
After you have compared the differences between your package and its parent, use
cvc merge from your package checkout to merge revisions:
$> cvc merge
Add a revision argument if desired to target a specific package revision on the parent branch:
$> cvc merge 1.0.5
On rare occasions, merge conflicts can occur. When this happens, Conary creates a .conflicts file for each file that had conflicts. You can examine these files and the screen's output to troubleshoot the failed merge operation.
Note that it is not possible to use cvc diff to
preview a three-way merge before you do it. Instead, you can do a
cvc merge, and then run
cvc diff afterward to see if things merged as
you needed. If you're satisfied with the results, commit the
changes with cvc ci. If you don't like the
results, use cvc revert to revert your current
checkout to its last committed state.