You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Rick Mann <rm...@latencyzero.com> on 2005/06/07 23:04:56 UTC

Support for partial checkins?

(Partial checkin, partial commit, commit subset of files)

I did some looking in the users@ archive and the Issue tracker, and  
didn't find anything after a few minutes.

One of the features I miss most from Perforce was the ability to do  
an atomic commit of a subset of the modified files. The basic UI in  
Perforce to do this presented when editing the checkin comment  
interactively.

Your designated editor is invoked, and you are presented with a list  
of the files you're about to commit along with a place where you can  
write the checkin comment. (Unlike CVS) each file is listed on a  
separate line, with the full path from the top of the WD. Any file  
you don't want to commit, you simply delete the corresponding line  
from the checkin editor session.

Is there a plan to add this to subversion? If not, why not? Should I  
open an Issue for this?

Thanks!

-- 
Rick


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Support for partial checkins?

Posted by Joshua Jensen <jj...@workspacewhiz.com>.
> I remember that exactly this proposal was done quite some 
> time ago. I think implementing it wouldn't be very hard: svn 
> knows which paths it has put into the file, it "just" needs 
> to reread the list and commit every path that is still in the 
> list and if there's a path it doesn't know about svn would 
> need to ask whether to ignore those paths or to abort (with 
> default to abort if svn isn't connected to a TTY).

I might add also, if it hasn't already been done in this thread, that svk
(http://svk.elixus.org/) does allow manipulation of the file list on commit.
It is an invaluable feature, and I would like to see Subversion allow the
same.

Josh


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Marc Haisenko <ha...@webport.de>.
On Wednesday 08 June 2005 11:32, Max Bowsher wrote:
> It's an interesting and potentially quite useful idea.
>
> I recommend taking it to the dev@ list, and trying to sort out the design
> issues - for example: what should Subversion do if the list of files has
> been modified in ways other than simple deletion of lines - eg, has been
> deleted entirely, or totally scrambled.
>
> Max.

I remember that exactly this proposal was done quite some time ago. I think 
implementing it wouldn't be very hard: svn knows which paths it has put into 
the file, it "just" needs to reread the list and commit every path that is 
still in the list and if there's a path it doesn't know about svn would need 
to ask whether to ignore those paths or to abort (with default to abort if 
svn isn't connected to a TTY).

Maybe a nice task for the Summer Of Code ? I guess once the exact behaviour is 
specified it would be a fairly easy task to do as I guess it doesn't involve 
a lot of in-depth svn code and design knownledge.

-- 
Marc Haisenko
Systemspezialist
Webport IT-Services GmbH
mailto: haisenko@webport.de

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Scott Palmer <sc...@2connected.org>.
On Jun 7, 2005, at 9:05 PM, Rick Mann wrote:

> On the other hand, had I supplied the comment on the command line,  
> it would look something like this:
>
> ===================================================================
> aero:~/Spyglass/svn/code/trunk/fo rmann$ svn commit -m "CLI checkin  
> demo"
> Sending        fo/web/WEB-INF/config/struts-config.xml
> Sending        fo/web/WEB-INF/config/tiles-definitions.xml
> Transmitting file data ..
> Committed revision 6.
> aero:~/Spyglass/svn/code/trunk/fo rmann$
> ===================================================================

Or:

aero:~/Spyglass/svn/code/trunk/fo rmann$ cd web/WEB-INF/config/
aero:~/Spyglass/svn/code/trunk/fo/web/WEB-INF/config/ rmann$  svn  
commit -m "CLI checkin demo" struts-config.xml
Sending        fo/web/WEB-INF/config/struts-config.xml
Transmitting file data ..
Committed revision 6.

At least when the file list is small enough.  Cut and paste in the  
terminal window can help of course.

Scott

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by kf...@collab.net.
"Max Bowsher" <ma...@ukf.net> writes:
> > Note that it only sent struts-config.xml, not both files originally
> > shown in the commit edit.
> 
> It's an interesting and potentially quite useful idea.
> 
> I recommend taking it to the dev@ list, and trying to sort out the
> design issues - for example: what should Subversion do if the list of
> files has been modified in ways other than simple deletion of lines -
> eg, has been deleted entirely, or totally scrambled.

I know that there's a long thread, and maybe even a closed issue, from
the past about this very feature, concluding in a consensus to not
implement (at that time).  I'm away from my regular computer right now
and looking up the actual archive links would be difficult, but I know
they're there...

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Max Bowsher <ma...@ukf.net>.
Rick Mann wrote:
>
> Well, right now, if I type "svn commit", vi gets invoked and displays
> something like this (the =='s bars represent the terminal window):
>
> ===================================================================
> --This line, and those below, will be ignored--
>
> M    fo/web/WEB-INF/config/struts-config.xml
> M    fo/web/WEB-INF/config/tiles-definitions.xml
> ~
> ~
> ~
> ===================================================================
>
> Instead of saying "--This line, and those below, will be ignored--",
> it could say "Files:". Then, if add a comment, and cursor down to one
> of the lines, and delete it so that I have something like this:
>
>
> ===================================================================
> Demo of partical checkin.
> --This line, and those below, will be ignored--
>
> M    fo/web/WEB-INF/config/struts-config.xml
> ~
> ~
> ~
> ~
> ===================================================================
>
> and then <esc>-:-w-q-<ret>, I'm done. vi closes, and svn commit
> outputs something like:
>
>
> ===================================================================
> aero:~/Spyglass/svn/code/trunk/fo rmann$ svn commit
> [vi editor session happened in here]
> Sending        fo/web/WEB-INF/config/struts-config.xml
> Transmitting file data ..
> Committed revision 6.
> aero:~/Spyglass/svn/code/trunk/fo rmann$
> ===================================================================
>
>
> Note that it only sent struts-config.xml, not both files originally
> shown in the commit edit.


It's an interesting and potentially quite useful idea.

I recommend taking it to the dev@ list, and trying to sort out the design 
issues - for example: what should Subversion do if the list of files has 
been modified in ways other than simple deletion of lines - eg, has been 
deleted entirely, or totally scrambled.

Max.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Rick Mann <rm...@latencyzero.com>.
On Jun 7, 2005, at 17:52, Scott Palmer wrote:


> How do you propose doing this without a GUI? I can think of -- 
> interactive  which would ask a yes/no question for each file to  
> commit.  Would that do?
>

Well, right now, if I type "svn commit", vi gets invoked and displays  
something like this (the =='s bars represent the terminal window):

===================================================================
--This line, and those below, will be ignored--

M    fo/web/WEB-INF/config/struts-config.xml
M    fo/web/WEB-INF/config/tiles-definitions.xml
~
~
~
===================================================================

Instead of saying "--This line, and those below, will be ignored--",  
it could say "Files:". Then, if add a comment, and cursor down to one  
of the lines, and delete it so that I have something like this:


===================================================================
Demo of partical checkin.
--This line, and those below, will be ignored--

M    fo/web/WEB-INF/config/struts-config.xml
~
~
~
~
===================================================================

and then <esc>-:-w-q-<ret>, I'm done. vi closes, and svn commit  
outputs something like:


===================================================================
aero:~/Spyglass/svn/code/trunk/fo rmann$ svn commit
[vi editor session happened in here]
Sending        fo/web/WEB-INF/config/struts-config.xml
Transmitting file data ..
Committed revision 6.
aero:~/Spyglass/svn/code/trunk/fo rmann$
===================================================================


Note that it only sent struts-config.xml, not both files originally  
shown in the commit edit.

On the other hand, had I supplied the comment on the command line, it  
would look something like this:

===================================================================
aero:~/Spyglass/svn/code/trunk/fo rmann$ svn commit -m "CLI checkin  
demo"
Sending        fo/web/WEB-INF/config/struts-config.xml
Sending        fo/web/WEB-INF/config/tiles-definitions.xml
Transmitting file data ..
Committed revision 6.
aero:~/Spyglass/svn/code/trunk/fo rmann$
===================================================================


-- 
Rick



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Scott Palmer <sc...@2connected.org>.
On Jun 7, 2005, at 8:15 PM, Rick Mann wrote:

> On Jun 7, 2005, at 17:06, Steve Williams wrote:
>
>> Try putting the list of files into a temp file.  Use that file as  
>> the 'targets' parameter.
>>
>> svn ci --targets tempfile -m "Multiple file commit"
>
> So, this is the best suggestion I've heard so far, but it's still a  
> bit cumbersome. "svn commit", as I envision it, combines all this  
> into one easy step (easy process?):
>
> 1. svn stat piped to a file
> 2. open the file
> 3. edit the file, which might be much more than just deleting a few  
> lines (can the output of stat go straight to svn commit?)
> 4. save and quit
> 5. type the commit command with all its options, prone to error

Well, it's no more prone to error than is necessary for a command  
line interface.  Depending on the number of files you could just list  
them all on the command line.

> The other way is:
>
> 1. svn commit
> 2. edit comment
> 3. (optionally) remove files from the file list
> 4. save and quit.

How do you propose doing this without a GUI? I can think of -- 
interactive  which would ask a yes/no question for each file to  
commit.  Would that do?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Kevin Puetz <pu...@puetzk.org>.
Rick Mann wrote:

> The other way is:
> 
> 1. svn commit
> 2. edit comment
> 3. (optionally) remove files from the file list
> 4. save and quit.

Yes, svk implements it that way and it's rather nice. the log template shows
the modified files (below a divider) and any lines you remove before
closing the editor are not included in the commit.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Support for partial checkins?

Posted by Dale Worley <dw...@pingtel.com>.
> From: Rick Mann [mailto:rmann@latencyzero.com]
>
> So, this is the best suggestion I've heard so far, but it's still a
> bit cumbersome. "svn commit", as I envision it, combines all this
> into one easy step (easy process?):
>
> 1. svn stat piped to a file
> 2. open the file
> 3. edit the file, which might be much more than just deleting a few
> lines (can the output of stat go straight to svn commit?)
> 4. save and quit
> 5. type the commit command with all its options, prone to error

It sounds like you could implement this with a shell script quite easily.
So you'd have a single command-line command to do the sequence.

Dale


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Rick Mann <rm...@latencyzero.com>.
On Jun 7, 2005, at 17:06, Steve Williams wrote:

> Try putting the list of files into a temp file.  Use that file as  
> the 'targets' parameter.
>
> svn ci --targets tempfile -m "Multiple file commit"

So, this is the best suggestion I've heard so far, but it's still a  
bit cumbersome. "svn commit", as I envision it, combines all this  
into one easy step (easy process?):

1. svn stat piped to a file
2. open the file
3. edit the file, which might be much more than just deleting a few  
lines (can the output of stat go straight to svn commit?)
4. save and quit
5. type the commit command with all its options, prone to error


The other way is:

1. svn commit
2. edit comment
3. (optionally) remove files from the file list
4. save and quit.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Steve Williams <st...@kromestudios.com>.
Rick Mann wrote:
> I'm using Mac OS X. The point is, I'm not using Windows, and  
> TortoiseSVN is a Windows product.

Subversion does not provide any GUI clients for any platforms.  GUI 
clients are provided by third-parties.  For OS X you could try svnX 
(http://www.lachoseinteractive.net/en/community/subversion/svnx/features/)

-- 
Sly


This message and its attachments may contain legally privileged or confidential information. This message is intended for the use of the individual or entity to which it is addressed. If you are not the addressee indicated in this message, or the employee or agent responsible for delivering the message to the intended recipient, you may not copy or deliver this message or its attachments to anyone. Rather, you should permanently delete this message and its attachments and kindly notify the sender by reply e-mail. Any content of this message and its attachments, which does not relate to the official business of the sending company must be taken not to have been sent or endorsed by the sending company or any of its related entities. No warranty is made that the e-mail or attachment(s) are free from computer virus or other defect.


RE: Support for partial checkins?

Posted by James FitzGibbon <jf...@primustel.ca>.
What you request is available with the command line interface - just list
only the files you want to check in on the command line instead of issuing a
bare 'svn ci':

[vrfy:james] ~/james/home (6) > svn stat
A      foo
M      .imap_mail_filter/rules/70_svn.rule
[vrfy:james] ~/james/home (7) > svn ci foo -m "check in a subset"
Password for 'james':
Adding         foo
Transmitting file data .
Committed revision 106.
[vrfy:james] ~/james/home (8) >

If you want something like what people are suggesting TortoiseSVN for, you'd
have to tell us what (if any) GUI interface you are currently using on
MacOSX.  I know only of SCPlugin - if that's what you are using then they
are the people such a feature request should go to, not to the core
Subversion team.

Regards

-----Original Message-----
From: Rick Mann [mailto:rmann@latencyzero.com] 
Sent: Tuesday, June 07, 2005 7:39 PM
To: users@subversion.tigris.org
Subject: Re: Support for partial checkins?


On Jun 7, 2005, at 16:23, Frank Gruman wrote:

> What OS are you using??  I can do exactly what you are requesting 
> through TortoiseSVN.  Depending on the level (folder) that I am 
> committing, I will see any/all files modified within that directory 
> and sub-directories.  I can then choose which files to commit (the 
> default is all).

I'm using Mac OS X. The point is, I'm not using Windows, and TortoiseSVN is
a Windows product.


--
Rick


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.6.5 - Release Date: 6/7/2005
 

-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.6.5 - Release Date: 6/7/2005
 



-- 
----------------------------------------------------------------------------
This electronic message contains information from Primus Telecommunications
Canada Inc. ("PRIMUS") , which may be legally privileged and confidential.
The information is intended to be for the use of the individual(s) or entity
named above. If you are not the intended recipient, be aware that any
disclosure, copying, distribution or use of the contents of this information
is prohibited. If you have received this electronic message in error, please
notify us by telephone or e-mail (to the number or address above)
immediately. Any views, opinions or advice expressed in this electronic
message are not necessarily the views, opinions or advice of PRIMUS.
It is the responsibility of the recipient to ensure that
any attachments are virus free and PRIMUS bears no responsibility
for any loss or damage arising in any way from the use
thereof.The term "PRIMUS" includes its affiliates.
----------------------------------------------------------------------------
Pour la version en français de ce message, veuillez voir
 http://www.primustel.ca/fr/legal/cs.htm
----------------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Rick Mann <rm...@latencyzero.com>.
On Jun 7, 2005, at 16:23, Frank Gruman wrote:

> What OS are you using??  I can do exactly what you are requesting  
> through TortoiseSVN.  Depending on the level (folder) that I am  
> committing, I will see any/all files modified within that directory  
> and sub-directories.  I can then choose which files to commit (the  
> default is all).

I'm using Mac OS X. The point is, I'm not using Windows, and  
TortoiseSVN is a Windows product.


-- 
Rick


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Support for partial checkins?

Posted by Frank Gruman <fg...@verizon.net>.
What OS are you using??  I can do exactly what you are requesting 
through TortoiseSVN.  Depending on the level (folder) that I am 
committing, I will see any/all files modified within that directory and 
sub-directories.  I can then choose which files to commit (the default 
is all).

Regards,
Frank

Rick Mann wrote:

> (Partial checkin, partial commit, commit subset of files)
>
> I did some looking in the users@ archive and the Issue tracker, and  
> didn't find anything after a few minutes.
>
> One of the features I miss most from Perforce was the ability to do  
> an atomic commit of a subset of the modified files. The basic UI in  
> Perforce to do this presented when editing the checkin comment  
> interactively.
>
> Your designated editor is invoked, and you are presented with a list  
> of the files you're about to commit along with a place where you can  
> write the checkin comment. (Unlike CVS) each file is listed on a  
> separate line, with the full path from the top of the WD. Any file  
> you don't want to commit, you simply delete the corresponding line  
> from the checkin editor session.
>
> Is there a plan to add this to subversion? If not, why not? Should I  
> open an Issue for this?
>
> Thanks!
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Support for partial checkins?

Posted by Kyle Heon <kh...@comcast.net>.
I think this is something you can achieve with TortoiseSVN. It displays a
list of modified, added, deleted, etc files and you can selectively choose
which ones are committed to the repository.

I check in change sets of a single file all day long, that way the message
is applicable to the file(s) in the change set.

Does this make sense? Is it helpful?

Kyle Heon
kheon@comcast.net


-----Original Message-----
From: Rick Mann [mailto:rmann@latencyzero.com] 
Sent: Tuesday, June 07, 2005 7:05 PM
To: users@subversion.tigris.org
Subject: Support for partial checkins?

(Partial checkin, partial commit, commit subset of files)

I did some looking in the users@ archive and the Issue tracker, and  
didn't find anything after a few minutes.

One of the features I miss most from Perforce was the ability to do  
an atomic commit of a subset of the modified files. The basic UI in  
Perforce to do this presented when editing the checkin comment  
interactively.

Your designated editor is invoked, and you are presented with a list  
of the files you're about to commit along with a place where you can  
write the checkin comment. (Unlike CVS) each file is listed on a  
separate line, with the full path from the top of the WD. Any file  
you don't want to commit, you simply delete the corresponding line  
from the checkin editor session.

Is there a plan to add this to subversion? If not, why not? Should I  
open an Issue for this?

Thanks!

-- 
Rick


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org