project-update not getting updates

Asked by WhisperingChaos

First, many thanks for a great extension to Bazaar! Composing a project from various branches is critically important to the success of my effort and this extension greatly improves my day to day experience in managing my project!

Now concerning the topic of my post. Since I'm new to bzr, I'm probably missing something but “project-update” doesn't seem to pull updates from parent branches that have indeed been updated and whose revision numbers are greater than the corresponding branches in the derivative project.

Here's the scenario:

Project GDEsim2 – combination of two branches DevMainGDEextension and GDEmixin. Has a Tag called “Tag1” related to revision 17 found in branch DevMainGDEextension and revision 4 in GDEmixin. Each project had subsequent revisions committed beyond the one tagged.

Project GDEsim4 – Created by a “project-get -r Tag1 /home/owns/GDEsim2 /home/owns/GDEsim4 -r ” operation. As specified by the revision parameter, it only included the image of the files associated to “Tag1” (revisions 17 & 4) ignoring the revisions subsequent to it. Next, while current in the GDEsim4 directory the “bzr project-update” command was executed. I expected this command, from my limited knowledge, to pull in all revisions for both component branches since establishing “Tag1”, however, it didn't pull in anything from the parent project maintaining each branch as of the initial “project-get” (at revisions 17 & 4) generating the following output as it ran:

# Updating control branch from /home/owns/GDEsim2/...
#------------------------------------------------------------
# Component: GDE
# Updating working tree from /home/owns/DevMainGDEextension...
#------------------------------------------------------------
# Component: mix
# Updating working tree from /home/owns/GDEmixin...
#------------------------------------------------------------
# Done.

A few other facts:

A “bzr merge” discovers the subsequent revisions and adds them to the GDEsim4 project.

There were no pending operations for either tree or branch.

Scmproj version is 0.6.1

I have a GDEsim3 project that was derived from GDEsim2 before GDEsim2 was tagged. A “project-update” of GDEsim3 does not pull the changes down from GDEaim2 into the GDEsim3 working tree.

No reversion qualifiers were specified in the project.cfg file.

Here's a copy of the project.cfg file from the GDEsim4 working tree:

### project.cfg v1

### Don't edit the line above!

# See the documentation for details on the project.cfg format

# For any component you should specify at least RELPATH and BRANCH_URL option

## describe each component in subsequent sections, e.g.:

# [component "name"]

# RELPATH =

# BRANCH_URL =

[component "GDE"]

RELPATH = GDE

BRANCH_URL = /home/openwns/DevMainGDEextension

DESCRIPTION = main artifacts

[component "mix"]

RELPATH = GDE/mix

BRANCH_URL = /home/openwns/GDEmixin

DESCRIPTION = mixin artifacts.

So what can you suggest?

Question information

Language:
English Edit question
Status:
Solved
For:
ScmProj plugin Edit question
Assignee:
No assignee Edit question
Solved by:
Alexander Belchenko
Solved:
Last query:
Last reply:
Revision history for this message
Best Alexander Belchenko (bialix) said :
#1

WhisperingChaos пишет:
> New question #160717 on ScmProj plugin:
> https://answers.launchpad.net/bzr-scmproj/+question/160717
>
> First, many thanks for a great extension to Bazaar!

You're welcome.

> Now concerning the topic of my post. Since I'm new to bzr, I'm probably missing something but “project-update” doesn't seem to pull updates from parent branches that have indeed been updated and whose revision numbers are greater than the corresponding branches in the derivative project.

project-update only pulls those revisions from component branches that
are known in snapshot of the root component.

Snapshot contains revision ids of all component branches and it's
updated by project-commit command.

So, you need to pull manually desired changes to components with `bzr
pull` command in corresponding directories, or force update of the
entire project with `bzr project-command pull`. After that if you're
happy with the state of your project you should commit the entire state
of the project with `bzr project-commit` (and therefore you'll have
updated snapshot in .bzrmeta/scmproj/snapshot file). Then you should
push your root branch to the server with `bzr project-publish`.

After that all subsequent `bzr project-update` will update your project
to the committed state based on snapshot. Therefore you can restore the
exact state of your project.

I hope that makes sense.

--
All the dude wanted was his rug back

Revision history for this message
Alexander Belchenko (bialix) said :
#2
Revision history for this message
WhisperingChaos (junk-bethz) said :
#3

Thanks for your rapid reply!

After reading what you've written above, and referring back to your documentation: http://bialix.com/scmproj/docs/v1-devel.html#motivation I've a better understanding of the Snapshot abstraction. I believe I should be able to fully understand the process given your guidance and these resources.

I appreciate your providing the link to the aliases for the project commands!

Take care!

Revision history for this message
WhisperingChaos (junk-bethz) said :
#4

Thanks Alexander Belchenko, that solved my question.