You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Harald Dunkel <ha...@t-online.de> on 2004/09/03 06:31:35 UTC

preserve modification date on co?

Hi folks,

How can I preserve the modification date of files on co?


Regards

Harri

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

Re: preserve modification date on co?

Posted by Harald Dunkel <ha...@t-online.de>.
Ben Collins-Sussman wrote:
> 
> Subversion is not designed to "create a perfect snapshot of every bit of
> data and metadata that can possibly exist".  It versions pathnames and
> directory contents.  It also versions metadata, but only metadata that
> *it* considers relevant:  the last time a file was committed, by whom,
> and so on.  It makes no promises that its own metadata will conceivably
> cover and capture every bit of metadata in existence on every filesystem
> implementation.  By your argument, I suppose it's also not very "windows
> like" to lose ACL metadata when importing files into Subversion.  
> 
As written before, I can live with the commit date.

But for large (maybe commercial) projects it might be necesseray
to make sure that some code is accessable by just a restricted
number of developers, e.g. the proprietary testcase provided by a
customer.

>>
>>Who said that make works better if SVN breaks the modification
>>date of all files? Don't you assume here that the make target
>>(e.g. a library or a lex header file) is not checked in? This
>>would be a very severe restriction.
> 
> 
> That's a pretty universal assumption.  Almost anyone you ask will agree
> that versioning derived objects in a CVS or SVN-like system is a *bad*
> idea. 

Talking about interoperability: It might be necessary to checkin
the files generated by lex and yacc to make sure that the same
parser is used on all platforms, for example. And if your
version control system allows you to manage write permissions,
then an unwanted update will fail with an error message.

> Clearcase is the exception, because it has its own build tools
> and actively encourages the sharing of derived objects. 

I am not talking about winking in derived objects. Its a horrible
feature.

> CVS and SVN
> assume that a standard build tool like 'ant' or 'make' pay attention to
> timestamps.  When you run 'svn up', you want 'make' to just do the right
> thing.
> 

Surely you are right for 99% of all make targets. Maybe make
should become more clever in target evaluation.


Many thanx

Harri

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

Re: preserve modification date on co?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Thu, 2004-09-09 at 12:57, Harald Dunkel wrote:

> > You can't.  svn doesn't preserve ownership or perms, other than a
> > generic 'executable' concept. 
> > 
> 
> Destroying information without need doesn't seem very
> unix-like to me.

Subversion is not designed to "create a perfect snapshot of every bit of
data and metadata that can possibly exist".  It versions pathnames and
directory contents.  It also versions metadata, but only metadata that
*it* considers relevant:  the last time a file was committed, by whom,
and so on.  It makes no promises that its own metadata will conceivably
cover and capture every bit of metadata in existence on every filesystem
implementation.  By your argument, I suppose it's also not very "windows
like" to lose ACL metadata when importing files into Subversion.  

Subversion manages metadata that is portable and important to version
control.  Permissions/ownership/ACLs are not portable, and their
non-existence has no real negative effect on version control or the
ability to collaborate through the svn tool.

> 
> > 'svn co/up' touches each file with 'now', so that tools like 'make' work
> > correctly. 
> 
> Who said that make works better if SVN breaks the modification
> date of all files? Don't you assume here that the make target
> (e.g. a library or a lex header file) is not checked in? This
> would be a very severe restriction.

That's a pretty universal assumption.  Almost anyone you ask will agree
that versioning derived objects in a CVS or SVN-like system is a *bad*
idea.  Clearcase is the exception, because it has its own build tools
and actively encourages the sharing of derived objects.  CVS and SVN
assume that a standard build tool like 'ant' or 'make' pay attention to
timestamps.  When you run 'svn up', you want 'make' to just do the right
thing.

> > Your other option is to look in ~/.subversion/config and set
> > 'use-commit-times=yes', which will force your working-copy files to have
> > the timestamp of the last time each file changed in the *repository*.
> > 
> 
> It worked. But it would be nice to get a command line flag
> with the same effect. No reason to change the default.

Definitely.  I think there may already be an issue filed to add a
commadline flag.  It would be nice.



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

Re: preserve modification date on co?

Posted by Helge Hess <he...@opengroupware.org>.
On Sep 9, 2004, at 19:57, Harald Dunkel wrote:
>> 'svn co/up' touches each file with 'now', so that tools like 'make' 
>> work
>> correctly.
> Who said that make works better if SVN breaks the modification
> date of all files? Don't you assume here that the make target
> (e.g. a library or a lex header file) is not checked in? This
> would be a very severe restriction.
+1

We ran into exactly the same issue when migrating OpenGroupware.org 
from CVS to Subversion. Besides lex/yacc stuff this also breaks 
pregenerated configure scripts, config.h files etc.

As mentioned in the thread the issue is that on checkout systems the 
tools to build such files are likely to be different/incorrect, which 
is why this kind of "derived sources" is usually checked into CVS and 
only generated by a maintainer.

Of course this issue can be ignored and isn't a catastrophe (at least 
not for us ;-), but it certainly a noticable annoyance.

best regards,
   Helge

PS: I don't understand why the question of permissions was brought up? 
Thats an completely unrelated topic. Modification dates are portable.
-- 
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


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

Re: preserve modification date on co?

Posted by Harald Dunkel <ha...@t-online.de>.
Ben Collins-Sussman wrote:
> On Fri, 2004-09-03 at 01:31, Harald Dunkel wrote:
> 
>>Hi folks,
>>
>>How can I preserve the modification date of files on co?
> 
> 
> You can't.  svn doesn't preserve ownership or perms, other than a
> generic 'executable' concept. 
> 

Destroying information without need doesn't seem very
unix-like to me.

> 'svn co/up' touches each file with 'now', so that tools like 'make' work
> correctly. 

Who said that make works better if SVN breaks the modification
date of all files? Don't you assume here that the make target
(e.g. a library or a lex header file) is not checked in? This
would be a very severe restriction.

> Your other option is to look in ~/.subversion/config and set
> 'use-commit-times=yes', which will force your working-copy files to have
> the timestamp of the last time each file changed in the *repository*.
> 

It worked. But it would be nice to get a command line flag
with the same effect. No reason to change the default.


Many thanx anyway

Harri

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

Re: preserve modification date on co?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Fri, 2004-09-03 at 01:31, Harald Dunkel wrote:
> Hi folks,
> 
> How can I preserve the modification date of files on co?

You can't.  svn doesn't preserve ownership or perms, other than a
generic 'executable' concept. 

'svn co/up' touches each file with 'now', so that tools like 'make' work
correctly.  Your other option is to look in ~/.subversion/config and set
'use-commit-times=yes', which will force your working-copy files to have
the timestamp of the last time each file changed in the *repository*.



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