You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by kf...@collab.net on 2004/02/14 23:10:06 UTC

Re: [DEFECT] cvs2svn.py does not honor --no-prune

Ling Li <li...@caltech.edu> writes:
> version: 0.37 (rpm from fedora core development repository)
> 
> command I used:
> cvs2svn --create --no-prune -s repos --trunk-only cvs_repos
> 
> There were only 3 revisions, but no empty directories were saved in
> the resulted svn repos.

If you asked it not to prune, and now there are no empty directories,
it sounds like it did exactly what you wanted :-).

But, if you would post a concrete example of what you expected to see
vs what you did see, then we could answer your question better.

By the way, this sort of question is more appropriate for
users@subversion.tigris.org, so I've redirected it there.  No big
deal, just letting you know for next time.

-Karl

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

Re: [DEFECT] cvs2svn.py does not honor --no-prune

Posted by "C. Michael Pilato" <cm...@collab.net>.
Ling Li <li...@caltech.edu> writes:

> I am confused by your comment. cvs2svn help gives
> 
>    --no-prune       don't prune empty directories
> 
> So when --no-prune is used, the empty directories in CVS repository
> should be included in the SVN repository. Am I right? But what cvs2svn
> did was not.

Ah.  This is likely a bug in cvs2svn.  CVS (and the RCS on which is
built) does not version directories -- directories are just containers
for the file data that *is* versioned by CVS.  Unless I'm mistaken,
cvs2svn only creates directories if they are needed as intermediate
path pieces toward some versioned file.  If you have directories in
your CVS repository that are empty (have to ,v files at all), then
yes, I would expect cvs2svn to behave in the way you are seeing it
behave.  I suppose we could, in --no-prune mode, forcibly create empty
directory structures where we lack them compared to the original CVS
repos.

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

Re: [DEFECT] cvs2svn.py does not honor --no-prune

Posted by Ling Li <li...@caltech.edu>.
kfogel@collab.net wrote:
 > I'm sorry, solar flares affecting my brain, don't know what I was
 > thinking.

:-)

 > (I see that Mike Pilato followed up, I'll go read that now.)

We may use the Unix time (the time you can see from "ls -l") of the 
empty directories as their committing time, assuming they have not been 
modified after their creation (since they are empty :-).

I can see this workaround might have a little timing problem. For example,

   -- D1 (dir)
    +- F1 (file)
    +- D2 (empty dir)

D2 might have an early creation time than the first commit time of F1. I 
guess (since I haven't read a bit of svn's source code) D1 is converted 
into SVN using the same (first) commit time as F1. So we might need to 
commit D1&D2 first, earlier than F1.

--Ling


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

Re: [DEFECT] cvs2svn.py does not honor --no-prune

Posted by kf...@collab.net.
Ling Li <li...@caltech.edu> writes:
> Hi Karl,
> 
> I am confused by your comment. cvs2svn help gives
> 
>    --no-prune       don't prune empty directories
> 
> So when --no-prune is used, the empty directories in CVS repository
> should be included in the SVN repository. Am I right? But what cvs2svn
> did was not.

I'm sorry, solar flares affecting my brain, don't know what I was
thinking.  

(I see that Mike Pilato followed up, I'll go read that now.)

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

Re: [DEFECT] cvs2svn.py does not honor --no-prune

Posted by Ling Li <li...@caltech.edu>.
kfogel@collab.net wrote:
> Ling Li <li...@caltech.edu> writes:
> 
>>command I used:
>>cvs2svn --create --no-prune -s repos --trunk-only cvs_repos
>>
>>There were only 3 revisions, but no empty directories were saved in
>>the resulted svn repos.
> 
> If you asked it not to prune, and now there are no empty directories,
> it sounds like it did exactly what you wanted :-).

Hi Karl,

I am confused by your comment. cvs2svn help gives

   --no-prune       don't prune empty directories

So when --no-prune is used, the empty directories in CVS repository 
should be included in the SVN repository. Am I right? But what cvs2svn 
did was not.

> But, if you would post a concrete example of what you expected to see
> vs what you did see, then we could answer your question better.

My CVS repo looks like

   -- dirA
     |- README
     |- dirA1 (empty)
     |- dirA2 (empty)
   -- dirB
     |- File1
     |- File2

Very simple. Here's the output from
cvs2svn --create --no-prune -s repos --trunk-only cvs_repos

... several lines for passes 1, 2, 3, & 4 ...

----- pass 5 -----
loading cvs2svn-dump into repos
<<< Started new transaction, based on original revision 1
      * adding path : trunk ... done.
      * adding path : trunk/dirA ... done.
      * adding path : trunk/dirA/README ... done.

------- Committed revision 1 >>>

<<< Started new transaction, based on original revision 2
      * adding path : trunk/dirB ... done.
      * adding path : trunk/dirB/File1 ... done.

------- Committed revision 2 >>>

<<< Started new transaction, based on original revision 3
      * adding path : trunk/dirB/File2 ... done.

------- Committed revision 3 >>>

pass 1: 0 seconds
pass 2: 0 seconds
pass 3: 0 seconds
pass 4: 0 seconds
pass 5: 1 seconds
  total: 1 seconds

Empty directories dirA/dirA1 & dirA2 were not committed in SVN repo.

Thanks!
--Ling


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