[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Is there excludes on implicit checkins?

From: Glanville, Jay <Jay.Glanville_at_NaturalConvergence.com>
Date: 2004-03-26 14:00:17 CET

Hello all.

Weird question here: is there a way to exclude certain files from an
implicit checkin, where these files are already version controlled?

Now that I've started off with the confusing bit, lets get to the
explanation.

My definition of an implicit checkin is when you perform a checkin of a
directory recursively. I.e.: I haven't explicitly asked to checkin file
foo.c, but by checking in it's parent directory, I've implicitly
requested to check the foo.c in.

Why do I want this functionality? In my working copy, in order to get
my project to run on my workstation, I need to modify some configuration
files. These files are version controlled (therefore, svn:ignore won't
work). I want to be able to go to the root of my project and check in
all changed files, except certain ones.

Let me give you an example. Here's a file structure:
 root
   + properties
   | + foo.properties
   | + foo.java
   + headers
       + foo.h
Lets say that I need to modify foo.properties in order to get the
application running. I've also modified foo.java and foo.h (plus about
50 other files) as part of my work. I want to be able to go to the root
directory and perform an implicit checkin (svn ci -m "reason" root), but
WITHOUT checking in foo.properties.

Note, the list of files not to be checked in is applicable to my working
copy, and not the repository. Therefore, using properties probably
wouldn't work, as they are applicable to everyone's working copy.

Of course, I still want the ability to explicitly checkin a file. For
example, if in the directory structure above, I've modified all three
files, plus I've labeled foo.properties as a file not to implicitly
checkin, then I would do something like this:
  svn ci root root/properties/foo.properties

Why do I want this? I have about 8 configuration files scattered
throughout my working copy of over 12,000 files. I am about to checkin
changes to over 65 of those files in 10 different subdirectories off of
root. I want all those 65 files to be in one 'changeset' or checkin
(i.e.: I need them to be atomic). However, there's 8 files that have
been modified that I don't want checked in, and these are the same 8
files that I don't want checked in next time.

Now, I'm sure that subversion doesn't natively support this concept.
But perhaps the community knows a work-around to this.

Perhaps a future solution for this would be to be able to flag certain
files for checkin, or to be able to create a 'change set', and then add
and remove files from that change set. For example:
>svn cs_create -m "reason"
    - changeset 45 created
>svn cs_add 45 root
    - added to changeset 45 ..
        .. root/properties/foo.properties
        .. root/properties/foo.java
        .. root/headers/foo.h
        ....
          + 65 other adds
        ....
>svn cs_rm 45 root/properties/foo.properties
    - removed from changeset 45 ..
        .. root/properties/foo.properties
This way, I could add all modified files, and then exclude certain
files.

Thanks for listening to my ramble.

JDG

--
Jay Glanville
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Mar 26 14:00:49 2004

This is an archived mail posted to the Subversion Users mailing list.