Discussion:
changes on multiple branches (UNCLASSIFIED)
Arthur Barrett
2013-09-23 23:07:20 UTC
Permalink
Steve,

And if you think that's a lot of fussing around for a simple result -
it's why 'changesets' were invented:
http://march-hare.com/cvsnt/features/changesets/en.asp

CVS supports two kinds of changesets:
- CVSNT 2.x and CVS 1.12 both support 'atomic' changesets (what
Subvserion calls 'atomic commits')
- CVSNT 2.x on Linux/Unix/Windows/Mac supports 'user defined' changesets
(what ClearCase calls a 'defect')

I have observed that increasingly the job of managing 'change sets' is
being offloaded into proprietary systems (Jira et al) even when the
'source control' is open. I'm not a fan of this for several reasons,
but mostly I just think that pragmatically the information about the
relationship between one change and the other belongs in the versioned
repository not in a separate database.

note: it has been observed that if your CVS repository gets cluttered
with 'too many' tags the performance can decrease, which is (one of many
reasons) why in CVSNT 2.x for Linux/Unix/Windows/Mac we put in user
defined changesets.

Regards,


Arthur Barrett
-----Original Message-----
org] On Behalf Of Glasgow, Steven R CIV USARMY TRADOC
ANALYSIS CTR (US)
Sent: 19 September 2013 04:43
Subject: changes on multiple branches (UNCLASSIFIED)
Classification: UNCLASSIFIED
Caveats: NONE
Please consider this situation.
Off of the trunk, I have two branches (lines of development), each one
implementing a separate new features in the source code.
Development team 1 finds a previously undiscovered error on
their branch
that existed on the trunk prior the creation of either
branch. Will the
following steps correct the error on both branches?
1. Checkout branch 1 into a sandbox
2. Correct the error in the sandbox
3. Tag the repository with a "begin-commit" tag
4. Commit the changes on branch 1
5. Tag the repository with a "end-commit" tag
6. Convert the sandbox over to branch 2 (or checkout branch 2
into another
sandbox)
7. Cvs update -j begin-commit -j end-commit to pull the
changes into the
branch 2 sandbox
8. Commit the changes on branch 2
Will cvs know to pull the changes made to branch 1 based on
the tags into
the branch 2 sandbox?
Thank you in advance for your assistance,
Steve
Classification: UNCLASSIFIED
Caveats: NONE
Glasgow, Steven R CIV USARMY TRADOC ANALYSIS CTR (US)
2013-09-24 12:24:42 UTC
Permalink
Classification: UNCLASSIFIED
Caveats: NONE

Thanks Arthur, we are still using version 1.11 of CVS under Linux (revision
23), as that is what comes bundled with RHEL.

Two questions:

1) I've looked for 1.12 to download and can find nothing that calls 1.12
"stable". All downloads for this version are under the "feature"
directories. Is there a stable version of 1.12?

2) Is there documentation available that lays out how to use change sets...a
web link somewhere?

Thanks,
Steve


-----Original Message-----
From: Arthur Barrett [mailto:***@march-hare.com]
Sent: Monday, September 23, 2013 6:07 PM
To: Glasgow, Steven R CIV USARMY TRADOC ANALYSIS CTR (US);
info-***@nongnu.org
Subject: RE: changes on multiple branches (UNCLASSIFIED)

Steve,

And if you think that's a lot of fussing around for a simple result - it's
why 'changesets' were invented:
http://march-hare.com/cvsnt/features/changesets/en.asp

CVS supports two kinds of changesets:
- CVSNT 2.x and CVS 1.12 both support 'atomic' changesets (what Subvserion
calls 'atomic commits')
- CVSNT 2.x on Linux/Unix/Windows/Mac supports 'user defined' changesets
(what ClearCase calls a 'defect')

I have observed that increasingly the job of managing 'change sets' is being
offloaded into proprietary systems (Jira et al) even when the 'source
control' is open. I'm not a fan of this for several reasons, but mostly I
just think that pragmatically the information about the relationship between
one change and the other belongs in the versioned repository not in a
separate database.

note: it has been observed that if your CVS repository gets cluttered with
'too many' tags the performance can decrease, which is (one of many
reasons) why in CVSNT 2.x for Linux/Unix/Windows/Mac we put in user defined
changesets.

Regards,


Arthur Barrett
-----Original Message-----
org] On Behalf Of Glasgow, Steven R CIV USARMY TRADOC ANALYSIS CTR
(US)
Sent: 19 September 2013 04:43
Subject: changes on multiple branches (UNCLASSIFIED)
Classification: UNCLASSIFIED
Caveats: NONE
Please consider this situation.
Off of the trunk, I have two branches (lines of development), each one
implementing a separate new features in the source code.
Development team 1 finds a previously undiscovered error on their
branch that existed on the trunk prior the creation of either branch.
Will the following steps correct the error on both branches?
1. Checkout branch 1 into a sandbox
2. Correct the error in the sandbox
3. Tag the repository with a "begin-commit" tag 4. Commit the changes
on branch 1 5. Tag the repository with a "end-commit" tag
6. Convert the sandbox over to branch 2 (or checkout branch 2 into
another
sandbox)
7. Cvs update -j begin-commit -j end-commit to pull the changes into
the branch 2 sandbox 8. Commit the changes on branch 2
Will cvs know to pull the changes made to branch 1 based on the tags
into the branch 2 sandbox?
Thank you in advance for your assistance, Steve
Classification: UNCLASSIFIED
Caveats: NONE
Classification: UNCLASSIFIED
Caveats: NONE
Arthur Barrett
2013-09-26 02:35:34 UTC
Permalink
Steve,

Stable, Feature - what's in a name? The 1.12 release has been in fairly wide use for some time and some Linux distribs are starting to ship it as standard.

I had a hand in writing the book 'All About CVS' which discusses change sets, but it has no particular chapter on it - it's more considered just the standard way people use cm today. But that is for 2.x not 1.12 and you are on 1.11 - if you see the value in this it's time to upgrade.

I know we have several US Mil contractors and lots of Fed departments using our commercial variant of CVSNT called CVS Suite, if you are interested please call/email my colleague Glen Starrett in Illinois on 800-653-1501 x803. He's a technical guy so can answer any question you throw at him.

Regards,

Arthur Barrett
Product Manager
Classification: UNCLASSIFIED
Caveats: NONE
Thanks Arthur, we are still using version 1.11 of CVS under Linux (revision
23), as that is what comes bundled with RHEL.
1) I've looked for 1.12 to download and can find nothing that calls 1.12
"stable". All downloads for this version are under the "feature"
directories. Is there a stable version of 1.12?
2) Is there documentation available that lays out how to use change sets...a
web link somewhere?
Thanks,
Steve
-----Original Message-----
Sent: Monday, September 23, 2013 6:07 PM
To: Glasgow, Steven R CIV USARMY TRADOC ANALYSIS CTR (US);
Subject: RE: changes on multiple branches (UNCLASSIFIED)
Steve,
And if you think that's a lot of fussing around for a simple result - it's
http://march-hare.com/cvsnt/features/changesets/en.asp
- CVSNT 2.x and CVS 1.12 both support 'atomic' changesets (what Subvserion
calls 'atomic commits')
- CVSNT 2.x on Linux/Unix/Windows/Mac supports 'user defined' changesets
(what ClearCase calls a 'defect')
I have observed that increasingly the job of managing 'change sets' is being
offloaded into proprietary systems (Jira et al) even when the 'source
control' is open. I'm not a fan of this for several reasons, but mostly I
just think that pragmatically the information about the relationship between
one change and the other belongs in the versioned repository not in a
separate database.
note: it has been observed that if your CVS repository gets cluttered with
'too many' tags the performance can decrease, which is (one of many
reasons) why in CVSNT 2.x for Linux/Unix/Windows/Mac we put in user defined
changesets.
Regards,
Arthur Barrett
-----Original Message-----
org] On Behalf Of Glasgow, Steven R CIV USARMY TRADOC ANALYSIS CTR
(US)
Sent: 19 September 2013 04:43
Subject: changes on multiple branches (UNCLASSIFIED)
Classification: UNCLASSIFIED
Caveats: NONE
Please consider this situation.
Off of the trunk, I have two branches (lines of development), each one
implementing a separate new features in the source code.
Development team 1 finds a previously undiscovered error on their
branch that existed on the trunk prior the creation of either branch.
Will the following steps correct the error on both branches?
1. Checkout branch 1 into a sandbox
2. Correct the error in the sandbox
3. Tag the repository with a "begin-commit" tag 4. Commit the changes
on branch 1 5. Tag the repository with a "end-commit" tag
6. Convert the sandbox over to branch 2 (or checkout branch 2 into
another
sandbox)
7. Cvs update -j begin-commit -j end-commit to pull the changes into
the branch 2 sandbox 8. Commit the changes on branch 2
Will cvs know to pull the changes made to branch 1 based on the tags
into the branch 2 sandbox?
Thank you in advance for your assistance, Steve
Classification: UNCLASSIFIED
Caveats: NONE
Classification: UNCLASSIFIED
Caveats: NONE
Loading...