Re: Patch for CVS 1.11.17 and CVS 1.12.9 that allows for actions using specific versions of CVSROOT/modules

2004-09-02 Thread Shane Turner
Mark D. Baushke wrote:
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Shane Turner <[EMAIL PROTECTED]> writes:
 

Here at InfoInterActive, we've created a patch to allow us to better
manage our modules. Our issue was that if you had to reproduce a
build, there was no guarantee that the current version of a module
fully encompassed what it did at the time the software was tagged. To
rectify that we now tag CVSROOT/modules when we tag our software and
wrote a patch that causes CVS to use a particular version of the
modules file on checkout, export, etc. Now, if the CVSROOT/modules
file it tagged at the time the software is built, we should now be
able to re-create that build even if the module has been changed in
the future.
   

Hi Shane,
You are addressing a problem that a number of folks consider a weakness
of the modules file.
However, as this is a new feature and not a remedy for an existing bug,
it will not be added to the cvs 1.11.x branch and will only be
considered for addition in the cvs 1.12.x feature branch. If possible,
patches should be made against the CVS top-of-tree from cvshome.org.
 

Exactly what I expected actually. I mailed out the 1.11.17 patch in case 
there are others (like our company) out there who haven't switched to 
1.12.X but would like to try out the patch.

As far as patching against the top-of-tree, I've tried to get access to 
the CVS repository on www.cvshome.org, but it has never worked. If I log 
in there then I can't do a damn thing. I've emailed to the webmaster 
(the only contact info I could find) and have never heard back. So this 
was the best I could do. If you can get my read-only access working, 
I'll gladly re-work the patch.

All that said, I have not looked closely at your patch yet (and I
probably won't have any time in the next few weeks myself, so if one of
the other maintainers gets to it first that would be fine with me).
I do have one comment/question for discussion...
Would it be reasonable to extend the patch to also deal with '-D' times
in conjunction with the -M ? So that if '-M branch' is used, then the
branched version of the modules file is used and if -D and -M are used,
then the version of the modules at that point in time on that branch are
used...
Note: A CVSROOT/modules file that was not branched or tagged will also
need to do something reasonable given a '-M rev' flag.
 

I'd like to extend it to take '-D' times, but I haven't worked at that 
yet. We currently only require using a date or revision. If we're stuck, 
we can determine the revision on a given date and use that. The -M flag 
will take a tag or a normal revision number so if you don't have a tag 
to use, you aren't stuck.

Shane
--
Shane Turner, Senior Software Engineer | InfoInterActive Corp. (An AOL Company)
E [EMAIL PROTECTED] | W www.infointeractive.com
AIM: iiaShane ICQ: 60761162| V: 902-832-2633 F: 902-832-1015
-BEGIN GEEK CODE BLOCK-
GCS d-(+) s: a- C++$ ULS++ P+(++) L++ E@ W+ N o? K? w O M- V !PS !PE Y+ PGP
t++@ 5+ X+ R tv b+ DI+ D+ G e++ h--- r+++ y+++ 
-END GEEK CODE BLOCK-


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS best practice

2004-07-22 Thread Shane Turner
Jim.Hyslop wrote:
Rick Genter wrote:
 

The system I work on consists of a number components. Each 
component is
a separately built Java application, all referencing portions of a
common database. Different components use different tables; 
some tables
are shared by many components, while some are used by a single
component. Over the life of the system, schema changes on the 
same table
may have been required by different applications for 
different purposes.

We script all of our database changes and store the scripts in our
repository, but this has led to some "spirited" debate about 
repository
structure. Our DBA wants to have a database-centric 
repository hierarchy
where all database scripts are stored in a CVS module named for the
database to which the script applies. There would be submodules for
Tables, Stored Procedures, Indexes, etc. I, on the other hand, want
scripts associated with a particular application to be stored in "SQL"
or "Schema" submodule under the module for that application.
   

In this case, you can have your cake and eat it, too!
Follow the DBA's suggestion: create a completely independent CVS module that
contains all the schema scripts. This keeps all the scripts in one place,
and ensures that the schema is consistent. Whether you go to the extent of
having a subdirectory for Tables, another for Stored Procs, etc. is between
you and your DBA.
In each of the projects that uses the database, add an "ampersand module"
that points to the schema module to each project in CVSROOT/modules file
that needs it. See the documentation for more details:
https://www.cvshome.org/docs/manual/cvs-1.11.17/cvs_18.html#SEC159
End result: The DBA gets to see all the files in one location, and you get
to see the schema files with each project. If one project changes the
schema, the other projects automatically inherit it. Everyone goes home a
winner!
 

I second Jim's suggestion. It answers your question much better than my 
response :)

Shane
--
Shane Turner, Senior Software Engineer | InfoInterActive Corp. (An AOL Company)
E [EMAIL PROTECTED] | W www.infointeractive.com
AIM: iiaShane ICQ: 60761162| V: 902-832-2633 F: 902-832-1015
-BEGIN GEEK CODE BLOCK-
GCS d-(+) s: a- C++$ ULS++ P+(++) L++ E@ W+ N o? K? w O M- V !PS !PE Y+ PGP
t++@ 5+ X+ R tv b+ DI+ D+ G e++ h--- r+++ y+++ 
-END GEEK CODE BLOCK-


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Re: CVS best practice

2004-07-22 Thread Shane Turner
Rick Genter wrote:
My question is more a question of best practice as opposed to how to use
CVS.
The system I work on consists of a number components. Each component is
a separately built Java application, all referencing portions of a
common database. Different components use different tables; some tables
are shared by many components, while some are used by a single
component. Over the life of the system, schema changes on the same table
may have been required by different applications for different purposes.
We script all of our database changes and store the scripts in our
repository, but this has led to some "spirited" debate about repository
structure. Our DBA wants to have a database-centric repository hierarchy
where all database scripts are stored in a CVS module named for the
database to which the script applies. There would be submodules for
Tables, Stored Procedures, Indexes, etc. I, on the other hand, want
scripts associated with a particular application to be stored in "SQL"
or "Schema" submodule under the module for that application.
What do others do?
--
Rick Genter
Sr. Software Engineer
Silverlink Communications
<mailto:[EMAIL PROTECTED]>
(781) 272-3080 x242
 

Here we treat the database as its own application with interfaces 
defined by the stored procedures. The stored procedures let us change 
the schema without necessarily changing the stored procedures used by 
the applications. If the interface to the database needs to change for 
an application, then that requires a release of the database before or 
at the same time as the application release. We also aim to ensure that 
when an application requires a new interface the existing interface 
continues to exist until that new application is in place. This helps us 
de-couple the database from the applications. Of course things don't 
always work that cleanly, but that's usually due to a more radical than 
usual shift in schema.

I hope that helps,
Shane
--
Shane Turner, Senior Software Engineer | InfoInterActive Corp. (An AOL Company)
E [EMAIL PROTECTED] | W www.infointeractive.com
AIM: iiaShane ICQ: 60761162| V: 902-832-2633 F: 902-832-1015
-BEGIN GEEK CODE BLOCK-
GCS d-(+) s: a- C++$ ULS++ P+(++) L++ E@ W+ N o? K? w O M- V !PS !PE Y+ PGP
t++@ 5+ X+ R tv b+ DI+ D+ G e++ h--- r+++ y+++ 
-END GEEK CODE BLOCK-


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs


Patch to better handle deeply nested module definitions

2001-11-28 Thread Shane Turner

Hi,

Here at InfoInterActive we've gotten into the habit of defining modules
for each library so when that library module is checked out, all of the
library modules that it depends on are also checked out. The problem
with this is when the same module ends up included more than once. When
accessing the repository on the local disk everything looks fine. When
you use ssh, things get wierd. After a given module is checked out for
the first time, every instance after that results in compaints because
it tried to check out the files all over again.

Here's an example of a the type of module definitions we use:

App -a Basics WunderLogLib FooLib BarLib AppDir

WunderLogLib -a Basics WunderLogLibDir

FooLib -a Basics WunderLogLib FooLibDir

BarLib -a Basics WunderLogLib FooLib BarLibDir

Basics -a BasicsDir

The unpatched cvs-1.11.1p1 would check out the following:
BasicsDir
BasicsDir
WunderLogLibDir
BasicsDir
BasicsDir
WunderLogLibDir
FooLibDir
BasicsDir
BasicsDir
WunderLogLibDir
BasicsDir
BasicsDir
WunderLogLibDir
FooLibDir
BarLibDir
AppDir

As you can see things get a little redundant.

To solve the problem, a couple of the other developers (Brad Spencer and
David Benoit) got sufficiently annoyed and wrote a little patch that
lets the server remember what modules it has already checked out.

We couldn't think of a better test for this new feature than the ones
that already test the module handling, so there isn't one.

I've submitted this patch to devel-cvs in the past, but I never did get
a response. I figure it's been working fine for us for months (and we
really push the envelope for modules) so it's safe for public
consumption.

Have fun and feel free to contact me if you have any questions or
suggestions.

Shane

--
Shane Turner, Senior Software Engineer
InfoInterActive Corp. (An AOL Company) www.infointeractive.com
E [EMAIL PROTECTED] V 902-832-2633 F 902-832-1015
AIM iiaShane
-BEGIN GEEK CODE BLOCK-
GCS d-(+) s: a- C++$ ULS++ P+(++) L++ E@ W+ N o? K? w O M- V !PS !PE Y+
PGP
t++@ 5+ X+ R tv b+ DI+ D+ G e++ h--- r+++ y+++
-END GEEK CODE BLOCK-



*** modules.c.orig  Thu May 10 11:28:41 2001
--- modules.c   Fri May 11 14:20:11 2001
***
*** 53,60 
--- 53,170 
  static int sort_order PROTO((const PTR l, const PTR r));
  static void save_d PROTO((char *k, int ks, char *d, int ds));
  
+ /*
+  * Remember what modules we've processed before so we don't duplicate a _lot_
+  * of effort.  This saves an amazing amount of time with highly recursive
+  * module definitions.  This should perhaps be a hash of some form, but
+  * writing complex data structures in C is just too quaint.
+  *
+  * GOTCHA: This assumes that only one (top-level) do_module is called per
+  * instance.  If this isn't true, reset the table first.  FIXME: It leaks.
+  */
  
+ /* Extra diagnostics */
+ #define CVSMODULE_PRINT_MODULE_MEMORY 1
+ 
+ /* Right now, it's just a linked list. */
+ struct MemoryNode {
+   struct MemoryNode *next;
+   char data[1];
+ };
+ static struct MemoryNode *st_list = NULL;
+ static unsigned int st_memoryHits = 0;
+ 
  /*
+  * Ask if the specified module is in module memory or not.
+  */
+ static int
+ module_memory_hit(char *mname)
+ {
+   /* The current list */
+   struct MemoryNode *start = st_list;
+ 
+   /* Start at the front and see if it's there.  If not, add it. */
+   while(start != NULL) {
+ if(strcmp(start->data, mname) == 0) {
+   /* Found it. */
+   st_memoryHits++;
+   return 1;
+ }
+ start = start->next;
+   }
+   return 0;
+ }
+ 
+ /*
+  * Add a specified module to module memory.  Returns 1 if it was already there,
+  * or 0 if it wasn't.
+  */
+ static int
+ module_memory(char *mname)
+ {
+   /* The current list */
+   struct MemoryNode *node;
+ 
+   if(module_memory_hit(mname) == 1) {
+ return 1;
+   }
+   
+   /*
+* Make a new node that will go on the front of the list.  We've got the +1
+* in the data[1].
+   */ 
+   node = (struct MemoryNode *)xmalloc(sizeof(struct MemoryNode)
+  + strlen(mname));
+   node->next = st_list;
+   strcpy(node->data, mname);
+   st_list = node;
+ 
+ #if CVSMODULE_PRINT_MODULE_MEMORY
+   if(trace) {
+ cvs_outerr(CLIENT_SERVER_STR, 0);
+ cvs_outerr("-> Added module `", 0);
+ cvs_outerr(mname, 0);
+ cvs_outerr("' to module memory\n", 0);
+   }
+ #endif /* CVSMODULE_PRINT_MODULE_MEMORY */  
+   
+   /* We added it, so it wasn't there */
+   return 0;
+ }
+ 
+ /*
+  * Forget all current module memory
+  */
+ 
+ static void
+ module_memory_forget(void)
+ {
+   struct MemoryNode *node = st_list;
+   struct MemoryNode *next;
+ 
+   /* Delete all nodes */
+   while(node != NULL) {
+ next = node->next;
+ free(node);
+ node = next;
+   }
+   /* Mark the list as empty */
+   st_list = NULL;
+   st_memoryHits 

Re: CVS tag renaming

2000-08-28 Thread Shane Turner

Sandra Wittenbrock wrote:

> Is it possible to rename a tag or branch?
>
> Thanks,
>
> Sandra

If you want to give a _branch_ a new name, you will need to use the
command "cvs admin" using the following procedure:

Checkout the affected files using the existing branch name.
Use the command
cvs admin -nNEW_BRANCH_TAG:OLD_BRANCH_TAG
to give the branch the second name "NEW_BRANCH_TAG".  It won't work if
the tag NEW_BRANCH_TAG has already
been used.  If it is already in use, then you will need to use
cvs admin -NNEW_BRANCH_TAG:OLD_BRANCH_TAG

Now you can check out the branch using OLD_BRANCH_TAG or NEW_BRANCH_TAG.

If you wish to, you may now remove the OLD_BRANCH_TAG.

Shane




Re: CVS/ENTRIES and cvs release

2000-08-22 Thread Shane Turner



Shawn,
I've found "cvs release" rather useless except when releasing the entire
working directory.
If I want to get rid of a directory in my working directory I ususally
do the following, which updated the CVS/Entries file
correctly:
cvs update -r 0 -P directory_to_remove
One issue with this technique is that it doesn't deal with the subdirectory
having edited files, etc., but if things haven't been touched, it works
fine.
Shane
Shawn Anderson wrote:


CVS
running on Unix [Solaris]
Suppose
you have a subdirectory in your working copy that you no longer wish to
keep under cvs control.
cvs
release foo   
[where foo is the said directory]
rm
-rf foo

Later
on, you wish to run cvs status, but the stat aborts because foo, which
exists in the CVS Entries file for its parent, does not exist in the directory
hierarchy.
How
to work around this problem??  We've tried cvs release -d foo, but
we still get the error when running the stat [and, I'd imagine, virtually
any other command that is driven by the CVS/Entries file.

Thanks
in Advance
 
 





Re: Files created on Branch

2000-06-23 Thread Shane Turner



Roy Miller wrote:

> --- In [EMAIL PROTECTED], Shane Turner <[EMAIL PROTECTED]> wrote:
> > One way to work around the problem is to put the ",v" file in the
> repository into the Attic.
> >
> > Shane
>
> This is really not the way to operate cvs - try getting used to using
> cvs commands.  Otherwise, you might as well just be your own revision
> control system, using rm, cp, mv, diff, etc.
>

I think you missed the point.  CVS has gotten into a bad state.  After
the merge, the file is marked as being added.  Upon attempting to commit,
CVS is failing out because the RCS file in the repository is not in the
Attic.  The RCS file in the repository should be in the Attic if the top
revision on the main line of development is dead.  So.  Given the top
revision is dead and the RCS file in the repository is NOT in the Attic
where it should be, we have to put it there in order to make CVS happy.
Then when the commit is made, CVS moves the RCS file back out of the
Attic.

How CVS ended up with the RCS file in the wrong place hasn't been
determined.  It might be a bug.

>
> >
> > "Kevin C. Castner" wrote:
> >
> > > I have files that were created on a branch
> > >
> > > (Create the file)
> > > cvs co -r branch_name doc
> > > cd doc
> > > touch index.htm
>
> Here you imply the file index.htm already exists and is checked out
> in
> the doc directory.
>

No.  He's demonstrating how he added a file on a branch instead of on the
trunk.  If your working directory is on a branch, any file created in
that working directory and added is created on the trunk as a dead
revision, and a regular revision on the branch. For example, in the case
above, revision 1.1 of index.htm is dead and 1.1.2.1 is not.

>
> > > cvs add index.htm
>
> Then there is no need to "cvs add" the file - it already exists under
> cvs control
>

See above.  It did not exist and did require adding.

>
> > > cvs commit index.htm
> > >
> > > Now I try to merge the file back to the main trunk.
> > >
> > > cd ..
> > > rm -rf doc
> > > cvs co doc
> > > cd doc
>
> It isn't necessary to remove your working directory and checkout a
> "new" copy of project.  You can revert to the main trunk simply by:
>
>   cvs update -A

> from within the doc directory
>

Valid point.

>
> > > cvs update -j branch_name
> > > cvs commit index.htm
> > >
> > > CVS then gives me the following error:
> > >
> > > cvs server: cannot add file `index.htm' when RCS file
> `/export/home/cvs/netops/doc/index.htm,v' already exists
> > > cvs [server aborted]: correct above errors first!
>
> This part appears to be complaining about the scheduled addition of
> an
> already existing file (see comments above).
>
> Good luck,
> Henry

Nope.  This is where the problem is being demonstrated.  The RCS file
isn't in the correct place in the repository.  My guess (and I haven't
tested this yet) is that when the file is added on the branch, the RCS
file is not created in the Attic although the revision on the trunk is
dead, which implies that the RCS file should be in the Attic.

Shane Turner




Re: Files created on Branch

2000-06-19 Thread Shane Turner

We are using 1.10.8 in local mode and via rsh.

Shane

Eric Siegerman wrote:

> Which version of CVS?  I just tried this using 1.10.8 and it
> worked fine.




Re: Files created on Branch

2000-06-15 Thread Shane Turner

We just experienced that same problem here.  I haven't had a chance to investigate the 
cause.

One way to work around the problem is to put the ",v" file in the repository into the 
Attic.

Shane

"Kevin C. Castner" wrote:

> I have files that were created on a branch
>
> (Create the file)
> cvs co -r branch_name doc
> cd doc
> touch index.htm
> cvs add index.htm
> cvs commit index.htm
>
> Now I try to merge the file back to the main trunk.
>
> cd ..
> rm -rf doc
> cvs co doc
> cd doc
> cvs update -j branch_name
> cvs commit index.htm
>
> CVS then gives me the following error:
>
> cvs server: cannot add file `index.htm' when RCS file 
>`/export/home/cvs/netops/doc/index.htm,v' already exists
> cvs [server aborted]: correct above errors first!
>
> Thanks
>
> Kevin




Re: Hypothetical: Adding the first file in a repository on a branch

2000-06-15 Thread Shane Turner

Eric Siegerman wrote:

> On Wed, Jun 14, 2000 at 03:48:08PM -0300, Shane Turner wrote:
> > The only way that a file can be added on a branch is if there exists a
> > file on that branch.  Having that first file allows you to update to the
> > branch.
> >
> > So, since the only thing that seems to matter is whether or not the tag
> > exists in val-tags, then shouldn't there be a way to manage valid tags?
>
> "cvs tag -b branch" appears to succeed when performed in an empty directory:
> $ ls -la
> total 6
> drwxr-xr-x   3 ericswww  512 Jun 14 18:04 .
> drwxr-xr-x   4 ericswww  512 Jun 14 18:04 ..
> drwxr-xr-x   2 ericswww  512 Jun 14 18:04 CVS
> $ cvs tag -b branch
> cvs tag: Tagging .
> $ echo $?
> 0
> $
>
> It would suffice if this also added "branch" to val-tags.

That would certainly do the job.

Shane




Hypothetical: Adding the first file in a repository on a branch

2000-06-14 Thread Shane Turner

I'm sure many of us have added a file on a branch such that the file
only exists on the branch and exists on the trunk as a dead revision.

While trying to set up a test case to diagnose a problem a developer was
having, I tried the following:

1. Created a test repository.
2. Created a working directory.
3. Checked out the root directory non-recursively.

Now at this point I wanted to add a file, but only on a branch.  I
wanted a dead revision on the trunk.

>From what I can tell it isn't possible via the standard CVS commands.

The only way that a file can be added on a branch is if there exists a
file on that branch.  Having that first file allows you to update to the
branch. The consequence of updating to the branch is that the CVS/Tag
file is created in the working directory with the name of the branch to
commit to.  At that point when you create a file, add it, and commit it,
the RCS file for the added file is created in the Attic with a dead
revision on the trunk and the file as it was added on the branch
revision.

I just had a possible way to do it. (just a sec)

Ok.  You can do it by manually creating CVS/Tag containing "Tbranchtag"
where "branchtag is the tag you want to add the file on.

Or.  You can add the tag you want to add files on to
$CVSROOT/CVSROOT/val-tags by adding a line of the format "branchtag y".

So, since the only thing that seems to matter is whether or not the tag
exists in val-tags, then shouldn't there be a way to manage valid tags?
Maybe something to validate val-tags?

Admittedly, I doubt this concerns anyone.  I just thought that it was
odd to require a file be already on a branch before adding new files to
the branch.

Shane Turner




Re: Diff bug when using the HEAD tag?

2000-06-09 Thread Shane Turner

Martin Roehrig wrote:

> Pardon me if I ask a silly question, but how could a single revision be
> present on multiple branches? As far as I understood the revision number
> exactly defines where the revision belongs to, doesn't it?
>

When you apply a branch tag to a file, my interpretation is that the revision
that was tagged (the origin of the branch) is on the branch.  If you make that
revision the origin of many branches, it is on each of those branches.

Shane




Re: Diff bug when using the HEAD tag?

2000-06-08 Thread Shane Turner

"Cameron, Steve" wrote:
[ DELETED STUFF ]

> HEAD as described here definitely has some impossible
> or at least meaningless cases: for instance, a sticky,
> non-branch  tag (or date or revision) on a file could
> match a revision  that is present on multiple branches,
> so which is the "correct"  current branch for  which the
> tip revision should be found?   There's no sensible answer.
> I suppose that could be  treated as an error and CVS
> could say, in essence, "you've asked  me a nonsense
> question." for such files.   Seems more trouble than
> it's worth to me though.

I think my approach would be that non-branch tags would be treated as the top
of a branch with no revisions commited to it.  Therefore, for a file that is
checked out on the non-branch tag, the difference between it and HEAD would
be empty.

Now for a file that has not been checked out with a tag, I think the
difference would have to be against the top of the trunk.





Re: forced updates

2000-06-01 Thread Shane Turner

Just delete the file.  CVS will notice that it is missing and fetch a
fresh copy from the repository.

The other option is to "cvs edit" the file, then "cvs unedit" when you
are done with it.  Both of these are available in the WinCVS interface. 
The "cvs edit" saves a copy of the file.  The "cvs unedit" will prompt
you to see if you want to overwrite the modified file.  In the situation
that you are asking about, you would just answer yes.

Shane

"Dimitrie O. Paun" wrote:
> 
> Hi,
> 
> Very often I run in this problem: I edit some files to add debugging stuff,
> and after a while I want to updated from CVS and to simply _overwrite_ the
> changes I made.
> 
> I know, I can delete the files and then update. But, this is difficult
> 'cause sometimes I don't know what I've modified (and the files are
> scattered in hundreds of directories). Questions:
> 
> 1) can I do this in one shot?
> 2) can I do it on the command line?
> 3) can I do it in WinCVS?
> 
> TIA,
> Dimi.




Re: Diff bug when using the HEAD tag?

2000-06-01 Thread Shane Turner

I think what you are seeing is related to the way that diff handles the meaning
of the tag HEAD.

Like someone mentioned already, diff sees HEAD as being the latest version on
the current branch.

I personally think it still lies.

Say I have file1 that has two revisions 1.1 and 1.2.
There is a branch (BRANCH1) based off of revision 1.1.
Say I check out BRANCH1.

This results in my getting revision 1.1 of file1.

Now I try diffing against HEAD.

cvs diff -r HEAD file1

As stated before, this should give me the difference between my current revision
on the branch (1.1) and the top revision on the branch (also 1.1).

But it doesn't

It actually gives me the diff between 1.2 and 1.1.

Now if I ran

cvs diff -r BRANCH1 file1

I get the correct result.

Seems like a bug to me.

Now back to your situation:

When you are on the TRUNK, you can only do the difference using the branch tag,
so everything works as expected.

When you are on the BRANCH1 some of the files actually have revisions commited
onto the branch, but some of them still only have revisions on the TRUNK.

When you diff against the HEAD tag, the files that don't have revisions on the
branch, the diff follows the TRUNK for those files.  The result is a hybrid diff
of things that have changed on the branch and things that have changed on the
TRUNK.

Hopefully everything made sense.

Shane

"Deever, Chris C." wrote:

> >When you're working on a branch, "HEAD" means the head of the branch,
> >not the head of the trunk, at least for diff.
>
> >-Larry Jones
>
> Please forgive me if I'm not yet on the same page, but I can't seem to fit
> that explanation into my scenario.
>
> The diff from the branch to HEAD *did* report some of the changes, except
> for two changes that happened to be in a file which there are in two
> different copies of the same file located in different parts of the project
> (a shared data structure between client and server).
>
> new branch
> |
> base line version -> rel tag -> a little more development -> current
>
> The above shows the tree.  When I am in "current" and diff against "new
> branch" I see all of the changes that I expect.  However, when I am in, "new
> branch" and I diff it against HEAD (which I am expecting it to be the latest
> changes comitted in the repository), I see only part of the changes.
>
> Either there is a bug or I'm not understanding something.  Branches do not
> automatically get changes from the trunk, do they?
>
> Regards,
>
> Chris




Re: TIP on removing directories from working directory

2000-05-24 Thread Shane Turner

Someone here suggested the same thing. At first I didn't think that it updated
the parent's CVS directory, but I was wrong.  It creates the file Entries.Static
which tells CVS not to update directories that aren't already checked out.

However, the method I suggested works for files, not just directories whereas
"cvs release -d" only works on directories.

Shane

Jerry Nairn wrote:

> Thanks,
> That's pretty cool. I'm thinking of how it would be an improvement over "cvs
> release -d"ing the unwanted folders, though. Doesn't that update the
> CVS/Entries file?
> Jerry
>
> > -Original Message-
> > From: Shane Turner [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, May 24, 2000 5:15 AM
> > To: [EMAIL PROTECTED]
> > Subject: TIP on removing directories from working directory
> >
> >
> > I've often wanted to check out a module, then prune off the
> > directories
> > and files that
> > I didn't need.  Until the other day I couldn't figure out a
> > way to do it
> > entirely with CVS commands.
> >
> > What I had been doing is deleting the directory that I didn't
> > want, then
> > manually updating the CVS/Entries file of the parent.  This
> > just seemed
> > wrong.
> >
> > The other day I realized that I could use the same mechanism
> > used in the
> > suggested 'cvs ls' equivalent (cvs rdiff -s -r 0 module).  I
> > could cause
> > CVS to discard the files I didn't want by specifying a non-existant
> > revision, and prune empty directories.
> >
> > cvs update -r 0 -P file-or-directory-to-remove
> >
> > Hopefully someone else will find this useful.
> >
> > Shane
> >




TIP on removing directories from working directory

2000-05-24 Thread Shane Turner

I've often wanted to check out a module, then prune off the directories
and files that
I didn't need.  Until the other day I couldn't figure out a way to do it
entirely with CVS commands.

What I had been doing is deleting the directory that I didn't want, then
manually updating the CVS/Entries file of the parent.  This just seemed
wrong.

The other day I realized that I could use the same mechanism used in the
suggested 'cvs ls' equivalent (cvs rdiff -s -r 0 module).  I could cause
CVS to discard the files I didn't want by specifying a non-existant
revision, and prune empty directories.

cvs update -r 0 -P file-or-directory-to-remove

Hopefully someone else will find this useful.

Shane




Re: Renaming branch?

2000-05-11 Thread Shane Turner

The only way that I know of to rename a branch tag is using cvs admin.

cvs admin -nbranch-name:new-branch-name

You'll need to have the files checked out unfortunately.

I don't think that there is a way to rename the branch in any file that has been
deleted on the branch.

Shane

--
Shane Turner, Developer, InfoInterActive
V 902-832-2633
F 902-832-1015
W http://www.infointeractive.com
E mailto:[EMAIL PROTECTED]





Re: Renaming a branch tag

2000-03-10 Thread Shane Turner

Stephen Rasku wrote:

> Is it possible to rename a branch tag?  We have been developing new
> features on a brach, called rel-2_4, while just performing bug fixes
> on the head.  I am in the process of merging this branch to the head.
> I have created another branch from the current head called rel-2_3 so
> that we can continue to fix bugs in version 2.3 of the product if we
> need to.
>
> However, when we start doing 2.5 development, if I create a  new 2.4
> branch called rel-2_4, it will leave the old 2.4 branch inaccessible.
> I would like to rename the rel-2_4 branch to rel-2_4-orig (or
> something like that).
>
> --
> Stephen Rasku   E-mail: [EMAIL PROTECTED]
> Senior Software EngineerPhone:  (604) 872-6676
> TGI TechnologiesWeb:http://www.tgivan.com/

Hi Stephen,

I believe what you want to do can be done with cvs admin.
The command
cvs admin -nrel-2_4-orig:rel-2_4
will result in the revisions tagged as rel-2_4 also being tagged as
rel-2_4.
So if branch rel-2_4 on file1 is revision 1.1.0.2 (shows up in cvs status
as
branch: 1.1.2), that same revision will have a second name rel-2_4-orig.
Essentially an alias.

I haven't found any other way to do this.

Shane
--
Shane Turner, Developer, InfoInterActive
V 902-832-2633
F 902-832-1015
W http://www.infointeractive.com
E mailto:[EMAIL PROTECTED]