You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Justus Stadler_external <Ju...@de.kspg.com> on 2009/07/20 06:28:15 UTC

list of all files when tagging

Hi guys,

I have a question about tagging. Our procedure of creating tags is to 
branch off the trunk for the preparation of a release. When all other 
files are changed or added, a final review is being held to check if the 
release is complete and without errors. Only after this review, a tag is 
created from that branch.
The problem is, that when looking at the log of that tag, the files 
describing this tag are not listet. All it says is: 
action          path            copied from                     revision
added           .../tags/name   .../branches/preparation_name   XX
I would like to have a complete overview of all files contained in the 
folder ".../tags/name" so that I am able to use the search pannel of TSVN 
to find files contained in more than one release. Is that possible with 
SVN? So far I helped myself by creating a list of all files and copying 
that list to the log message. But I hope there is an easier way to achieve 
this goal.

Thanks for any help
Justus 

Ps: I also posted this to the TSVN mailing list, because I'm not shure 
where this belongs.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372513

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: list of all files when tagging

Posted by Craig McQueen <ce...@mcqueen.id.au>.
Ryan Schmidt wrote:
> On Jul 21, 2009, at 03:23, Craig McQueen wrote:
>
>   
>> David Weintraub wrote:
>>     
>>>> I would like to have a complete overview of all files contained  
>>>> in the folder ".../tags/name" so that I am able to use the search  
>>>> pannel of TSVN to find files contained in more than one release.  
>>>> Is that possible with SVN?
>>>>         
>>> Subversion can help you find this information, but you'll have to  
>>> parse that information via some sort of scripting tool. For  
>>> example, let's say I determined that REL-1.0 was revision 12345  
>>> off of svn://repos/foo/branches/1.0 and REL-1.1 was revision 23456  
>>> off of svn://repos/foo/branches/1.0. Doing this will give me a  
>>> list of all files that were changed: $ svn -r12345:23456 log -v  
>>> svn://repos/foo/branches/1.0 It will also list all commit  
>>> comments, and whether the file was added, deleted, moved, etc.  
>>> Plus, if a particular file was changed more than once, it will be  
>>> duplicated on this list. A little parsing via a scripting language  
>>> (or even better a scripting language that uses the Subversion API)  
>>> will give me a list of exactly which files changed. Is this what  
>>> you are looking for?
>>>       
>> We want to do something like this, but not for tags. I imagine many  
>> folks would want to do this:
>>
>> * Report the difference between two SVN revisions.
>> * At the first level, list all the files that have changed.
>> * For each file, list all the changes to the file.
>>
>> This seems like it would be a desirable format for many software  
>> teams when generating software release notes, so does anyone know  
>> of any publicly-available scripts to manipulate the svn log data to  
>> create a report in this format?
>>     
>
> "svn diff -rA:B URL" shows you the difference of the repository
> at URL between revision A and B.
>
> Or if you want the difference between two tags, that's simply
> "svn diff URL_TO_TAG_A URL_TO_TAG_B"
>
> Add "--summarize" if you just want the filenames and don't
> want the actual changes to the files.
>
> Is that what you need?
>   
I didn't realise that 'svn diff --summarize' could give you a list of 
changed files. That's quite useful, thanks!

But I realised that what I said was ambiguous. When I said "For each 
file, list all the changes to the file.", I meant list the commit log 
details for each commit that changed the file. In that case, parsing and 
manipulating the 'svn log' output is probably the most straight-forward 
way that I'm aware of.

Regards,
Craig McQueen

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2374281

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Antwort: Re: list of all files when tagging

Posted by Justus Stadler_external <Ju...@de.kspg.com>.
I think what Craig ment was not the commands, these should be known by 
now;-) but rather if there is an existing scipt (my preference would be in 
written pearl or C).

#!/usr/bin/perl -w
$temp = "C:\\somewhere\\temp";
print "Please enter the URL of the repo you would like to list all files 
of:\n";
$URL = <STDIN>;
print "\n";
$command = "svn list $URL > $temp\\changed.txt";
!system $command
          or die "The command is incorrect!";

This will do for trunk, branches and tags. It will be some more work to go 
into the subfolders but if there is nothing comparable out there, I think 
I'll write it.
My first gues is that somebody already did this and probably much better 
than I ever could with my three weeks perl crashcourse. 

Justus

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372868

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: list of all files when tagging

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jul 21, 2009, at 03:23, Craig McQueen wrote:

> David Weintraub wrote:
>>
>>> I would like to have a complete overview of all files contained  
>>> in the folder ".../tags/name" so that I am able to use the search  
>>> pannel of TSVN to find files contained in more than one release.  
>>> Is that possible with SVN?
>> Subversion can help you find this information, but you'll have to  
>> parse that information via some sort of scripting tool. For  
>> example, let's say I determined that REL-1.0 was revision 12345  
>> off of svn://repos/foo/branches/1.0 and REL-1.1 was revision 23456  
>> off of svn://repos/foo/branches/1.0. Doing this will give me a  
>> list of all files that were changed: $ svn -r12345:23456 log -v  
>> svn://repos/foo/branches/1.0 It will also list all commit  
>> comments, and whether the file was added, deleted, moved, etc.  
>> Plus, if a particular file was changed more than once, it will be  
>> duplicated on this list. A little parsing via a scripting language  
>> (or even better a scripting language that uses the Subversion API)  
>> will give me a list of exactly which files changed. Is this what  
>> you are looking for?
> We want to do something like this, but not for tags. I imagine many  
> folks would want to do this:
>
> * Report the difference between two SVN revisions.
> * At the first level, list all the files that have changed.
> * For each file, list all the changes to the file.
>
> This seems like it would be a desirable format for many software  
> teams when generating software release notes, so does anyone know  
> of any publicly-available scripts to manipulate the svn log data to  
> create a report in this format?

"svn diff -rA:B URL" shows you the difference of the repository
at URL between revision A and B.

Or if you want the difference between two tags, that's simply
"svn diff URL_TO_TAG_A URL_TO_TAG_B"

Add "--summarize" if you just want the filenames and don't
want the actual changes to the files.

Is that what you need?

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372855

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: list of all files when tagging

Posted by Craig McQueen <ce...@mcqueen.id.au>.
David Weintraub wrote:
>> I would like to have a complete overview of all files contained in the
>> folder ".../tags/name" so that I am able to use the search pannel of TSVN to
>> find files contained in more than one release. Is that possible with SVN?
>>     
>
>
> Subversion can help you find this information, but you'll have to
> parse that information via some sort of scripting tool. For example,
> let's say I determined that REL-1.0 was revision 12345 off of
> svn://repos/foo/branches/1.0 and REL-1.1 was revision 23456 off of
> svn://repos/foo/branches/1.0. Doing this will give me a list of all
> files that were changed:
>
>      $  svn -r12345:23456 log -v svn://repos/foo/branches/1.0
>
> It will also list all commit comments, and whether the file was added,
> deleted, moved, etc. Plus, if a particular file was changed more than
> once, it will be duplicated on this list. A little parsing via a
> scripting language (or even better a scripting language that uses the
> Subversion API) will give me a list of exactly which files changed.
>
> Is this what you are looking for?
>   
>
We want to do something like this, but not for tags. I imagine many 
folks would want to do this:

* Report the difference between two SVN revisions.
* At the first level, list all the files that have changed.
* For each file, list all the changes to the file.

This seems like it would be a desirable format for many software teams 
when generating software release notes, so does anyone know of any 
publicly-available scripts to manipulate the svn log data to create a 
report in this format?

Regards,
Craig McQueen

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372846

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Antwort: Re: list of all files when tagging

Posted by Justus Stadler_external <Ju...@de.kspg.com>.
Hi David,

thank you for the detailed answer.
I think a script is what it will lead to in the end. Something with svn 
info, list and probably some diffing!
Thanks again, you put me on the right path!

Justus 

Ps: You don't happen to have a scripting tool for that allready, do you?

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372828

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].

Re: list of all files when tagging

Posted by David Weintraub <qa...@gmail.com>.
> Our procedure of creating tags is to branch
> off the trunk for the preparation of a release. When all other files are
> changed or added, a final review is being held to check if the release is
> complete and without errors. Only after this review, a tag is created from
> that branch.

This is usually known as releasing off of a branch, and is probably
the most common way projects do their releases.

> The problem is, that when looking at the log of that tag, the files
> describing this tag are not listet. All it says is:
> action                path                copied from
>  revision
> added                .../tags/name        .../branches/preparation_name
>    XX

Welcome to the wacky world of Subversion tagging. In a revision
control system, tags in CVS are applied on each and every file.
Because of this, most sites want to see what individual files have
been tagged just to make sure none were skipped or mistagged.

However, Subversion doesn't tag individual files, but a whole batch of
files at once. In this case, you're tagging a branch, and a specific
revision on that branch. We do the same, so here's an example we have:

$ svn log --stop-on-copy -v
http://subversion/dev/modules/adsuite/tags/ADS-5.3.1.1
------------------------------------------------------------------------
r53910 | svnant | 2009-06-26 16:08:11 -0400 (Fri, 26 Jun 2009) | 1 line
Changed paths:
   A /modules/adsuite/tags/ADS-5.3.1.1 (from
/modules/adsuite/branches/5.3.1.1:53909)

Blah, blah, blah
------------------------------------------------------------------------

Take a quick look at my tag: It tells me that the tag was created off
the 5.3.1.1 branch on revision 53909. That happens to be the revision
of the branch we tested and certified as our release. Just by looking
at that, I can tell that the tag is good, and I can use that tag to
duplicate exactly what I released.

There's really no reason to review all the individual files that were
"tagged" because the files themselves weren't tagged. The whole branch
at that revision was tagged. It is impossible to miss tagging a
particular file or tagging the wrong revision of it..

> I would like to have a complete overview of all files contained in the
> folder ".../tags/name" so that I am able to use the search pannel of TSVN to
> find files contained in more than one release. Is that possible with SVN?


Subversion can help you find this information, but you'll have to
parse that information via some sort of scripting tool. For example,
let's say I determined that REL-1.0 was revision 12345 off of
svn://repos/foo/branches/1.0 and REL-1.1 was revision 23456 off of
svn://repos/foo/branches/1.0. Doing this will give me a list of all
files that were changed:

     $  svn -r12345:23456 log -v svn://repos/foo/branches/1.0

It will also list all commit comments, and whether the file was added,
deleted, moved, etc. Plus, if a particular file was changed more than
once, it will be duplicated on this list. A little parsing via a
scripting language (or even better a scripting language that uses the
Subversion API) will give me a list of exactly which files changed.

Is this what you are looking for?

On Mon, Jul 20, 2009 at 2:28 AM, Justus
Stadler_external<Ju...@de.kspg.com> wrote:
>
> Hi guys,
>
> I have a question about tagging. Our procedure of creating tags is to branch
> off the trunk for the preparation of a release. When all other files are
> changed or added, a final review is being held to check if the release is
> complete and without errors. Only after this review, a tag is created from
> that branch.
> The problem is, that when looking at the log of that tag, the files
> describing this tag are not listet. All it says is:
> action                path                copied from
>  revision
> added                .../tags/name        .../branches/preparation_name
>    XX
> I would like to have a complete overview of all files contained in the
> folder ".../tags/name" so that I am able to use the search pannel of TSVN to
> find files contained in more than one release. Is that possible with SVN? So
> far I helped myself by creating a list of all files and copying that list to
> the log message. But I hope there is an easier way to achieve this goal.
>
> Thanks for any help
> Justus
>
> Ps: I also posted this to the TSVN mailing list, because I'm not shure where
> this belongs.
>



-- 
David Weintraub
qazwart@gmail.com

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372609

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].


Re: list of all files when tagging

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jul 20, 2009, at 01:28, Justus Stadler_external wrote:

> I have a question about tagging. Our procedure of creating tags is to
> branch off the trunk for the preparation of a release. When all other
> files are changed or added, a final review is being held to check  
> if the
> release is complete and without errors. Only after this review, a  
> tag is
> created from that branch.
> The problem is, that when looking at the log of that tag, the files
> describing this tag are not listet. All it says is:
> action          path            copied from                      
> revision
> added           .../tags/name   .../branches/preparation_name   XX
> I would like to have a complete overview of all files contained in the
> folder ".../tags/name" so that I am able to use the search pannel  
> of TSVN
> to find files contained in more than one release. Is that possible  
> with
> SVN? So far I helped myself by creating a list of all files and  
> copying
> that list to the log message. But I hope there is an easier way to  
> achieve
> this goal.

You just want to know all the files in a directory? That doesn't  
sound Subversion-specific, and I don't know a Subversion command for  
it. On UNIX, it would just be the "find" command. I don't know how to  
do it on Windows.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2372515

To unsubscribe from this discussion, e-mail: [users-unsubscribe@subversion.tigris.org].