[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Stopping a modified file from being checked in

From: Paul Sander
Subject: Re: Stopping a modified file from being checked in
Date: Sun, 14 Dec 2003 08:02:28 -0800

>--- Forwarded mail from address@hidden

>On Sat, 13 Dec 2003, Paul Sander wrote:

>>>I want to affect HEAD, just not for this one file.  Making a branch
>>>would be a bit silly if I will never commit anything on that
>>Not at all.  Isolating your work from that of your peers is what
>>branches are all about.

>But I can't create a branch without affecting the central repository,
>I believe.  So it's not completely isolating.

It's true that the existence of the branch is recorded in the repository,
and its sprout point is recorded in the affected RCS files.

There's a difference between "isolating" your work and "hiding" your
work.  Isolating your work keeps it separate from others, while hiding
it goes further to make it invisible.  Branches are good at isolation.
The only way to hide your work is to keep it local to your working
directory.  That's obviously your point, but on the other hand is it
really necessary to hide the fact that you need local mods to that file?

Something else to consider is this:  If you find a need to tune your
product locally, then so will your customers.  This is a sign that your
product might not have the degree of configurability that is really
needed.  Consider implementing an additional per-user configuration
method (e.g. environment variables, or an additional profile file
identified by an environment variable) to provide the capability.

If that's not feasible, then consider wrapping your product in a script
that generates the profile file from multiple sources, then launches the
product using the generated file.

>If I did make a branch, could I do so for one file, keeping everything
>else on the trunk?  Will it still be easy to update the one file with
>changes from the trunk?

When you run "cvs tag -b" and specify the file on the command line, the
branch tag will affect only that file.  Someone could apply that tag to
another file in the future, of course.  But if that's not intended then
something needs to be done about project management to make sure that
branch tags are never reused.

When you run "cvs update -r" and specify the file on the command line,
the sticky tag for only that file will be updated.  When you need to
merge that file from the HEAD at a later time, use "cvs update -j" as
needed.  This should solve your problem quite nicely.

>--- End of forwarded message from address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]