[opensuse-buildservice] obs branching question
Hi, I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated. The problem that I see with this is that developing on the branch becomes a bit like building on quicksand, since you never know when the ground is going to shift on you. I have a little build script which uses the same patchname ("current.patch") while I'm developing a mod but not yet ready to commit to a name for the patch, and this is causing the children branches to get broken whenever I update the origin (since at that time the update "current.patch" gets pushed to the children and causes all of the children to break due to a merge conflict in this "current.patch" file). Is there a way to change this behaviour so that a branch reflects the state of the origin when the branch was created, and doesn't auto-update? I do plan to change my script so that it uses a more random name for the patch, but I would still prefer to use the non-auto-push behaviour in case it's available. Thanks, Christian. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 2010-08-25 14:06:48 -0700, Christian Daudt wrote:
I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated. The problem that I see with this is that developing on the branch becomes a bit like building on quicksand, since you never know when the ground is going to shift on you. I have a little build script which uses the same patchname ("current.patch") while I'm developing a mod but not yet ready to commit to a name for the patch, and this is causing the children branches to get broken whenever I update the origin (since at that time the update "current.patch" gets pushed to the children and causes all of the children to break due to a merge conflict in this "current.patch" file). Is there a way to change this behaviour so that a branch reflects the state of the origin when the branch was created, and doesn't auto-update? I do plan to change my script so that it uses a more random name for the patch, but I would still prefer to use the non-auto-push behaviour in case it's available.
most people see this as a feature because you can always base your work on the latest version of "upstream". anyway osc help linkpac -> -c darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Aug 25, 2010 at 4:37 PM, Marcus Rueckert
On 2010-08-25 14:06:48 -0700, Christian Daudt wrote:
I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated. The problem that I see with this is that developing on the branch becomes a bit like building on quicksand, since you never know when the ground is going to shift on you. I have a little build script which uses the same patchname ("current.patch") while I'm developing a mod but not yet ready to commit to a name for the patch, and this is causing the children branches to get broken whenever I update the origin (since at that time the update "current.patch" gets pushed to the children and causes all of the children to break due to a merge conflict in this "current.patch" file). Is there a way to change this behaviour so that a branch reflects the state of the origin when the branch was created, and doesn't auto-update? I do plan to change my script so that it uses a more random name for the patch, but I would still prefer to use the non-auto-push behaviour in case it's available.
most people see this as a feature because you can always base your work on the latest version of "upstream".
anyway
osc help linkpac -> -c
I agree that this is useful also, that's why I was hoping it was configurable :-) this seems to be what I was looking for. I had not used linkpac before, it seems to do serve the same purpose as "osc branch", only with different options. Is that the case, or are their behaviours/uses different? Thanks, Christian.
darix
-- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Thursday 26 August 2010 03:45:30 Christian Daudt wrote:
On Wed, Aug 25, 2010 at 4:37 PM, Marcus Rueckert
wrote: On 2010-08-25 14:06:48 -0700, Christian Daudt wrote:
I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated. The problem that I see with this is that developing on the branch becomes a bit like building on quicksand, since you never know when the ground is going to shift on you. I have a little build script which uses the same patchname ("current.patch") while I'm developing a mod but not yet ready to commit to a name for the patch, and this is causing the children branches to get broken whenever I update the origin (since at that time the update "current.patch" gets pushed to the children and causes all of the children to break due to a merge conflict in this "current.patch" file). Is there a way to change this behaviour so that a branch reflects the state of the origin when the branch was created, and doesn't auto-update? I do plan to change my script so that it uses a more random name for the patch, but I would still prefer to use the non-auto-push behaviour in case it's available.
most people see this as a feature because you can always base your work on the latest version of "upstream".
I agree that this is useful also, that's why I was hoping it was configurable :-)
anyway
osc help linkpac -> -c this seems to be what I was looking for. I had not used linkpac before, it seems to do serve the same purpose as "osc branch", only with different options. Is that the case, or are their behaviours/uses different?
Hm, no, it is not a full copy. So you may have more often merge problems. What I would recommend is to do osc branch .. and a osc setlinkrev inside. So it is still a branch, but with fixed version. We should maybe also extend "osc branch" to understand -c directly. bye adrian -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Aug 25, 2010 at 06:45:30PM -0700, Christian Daudt wrote:
I agree that this is useful also, that's why I was hoping it was configurable :-)
For 'osc' it is configurable: if you set the 'linkcontrol' option you stay with the current version. If you want to merge you can do an 'osc pull'. The buildservice still builds packages with the most current sources, if you do not want that you have to specify a revision when doing the branch.
anyway
osc help linkpac -> -c this seems to be what I was looking for. I had not used linkpac before, it seems to do serve the same purpose as "osc branch", only with different options. Is that the case, or are their behaviours/uses different?
Please do not use linkpac, you really want a branch. (You can also first do a linkpac and then use 'osc linktobranch' to convert it to a branch. (Btw, that '-c' option of linkpac really needs to be renamed. linkpac and branch should have the same options, and branch also has a more usable '-c' option.) linkpac creates an 'old style' link, i.e. a link that works with patches. A branch has two advantages: - it doesn't give you that many merge conflicts - if the link is broken and not recoverable you still have easy access to the latest version of the sources. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wednesday 25 August 2010 23:06:48 Christian Daudt wrote:
Hi, I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated.
Yes, but any other SCM system does not deal with automatic binary building either. So we do this by default to always see if the current state is buildable or has conflicting sources. bye adrian -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wed, Aug 25, 2010 at 11:54 PM, Adrian Schröter
On Wednesday 25 August 2010 23:06:48 Christian Daudt wrote:
Hi, I just recently started using branches in obs, and to my surprise when the parent branch (the source proj:pkg used in osc branch command) gets an update, that is immediately pushes to the branches. This branching is not like the others :-( - i.e. unlike any version control in which the origin->child merge is done on demand, not auto-initiated.
Yes, but any other SCM system does not deal with automatic binary building either. So we do this by default to always see if the current state is buildable or has conflicting sources.
agreed - it just caught me by surprise. Particularly after I had created a bunch of branches during my testing and when I committed one change to the parent the obs load went way up unexpectedly Thanks, Christian.
bye adrian
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (4)
-
Adrian Schröter
-
Christian Daudt
-
Marcus Rueckert
-
Michael Schroeder