Philip Martin wrote:
> We need some indication that the client has explicitly set svn:date,
> including deleting it to indicate a revision with no date.

How would a client indicate that it wants the commit to have no date property 
at all?

I agree this is necessary in order to correctly replicate any arbitrary 
repository, even though it's unusual.

For HTTP connections, I suppose we could require the client to send an explicit 
PROPPATCH to un-set the date. Is something similar possible with svnserve?

I would really hate to make an exception to require the non-atomic 
commit-then-revprop-change pattern for this case.

Most normal Subversion clients today never send an svn:date property, so simply 
omitting it isn't enough -- unless there's also a way to know when we're 
currently talking to a client that would definitely send it if it is wanted (in 
other words, a way to configure "never auto-set the date" for certain 
clients/connections/scenarios).

> Also we can't assume that the server receives the requested svn:date at
> the time the transaction is created.  svnserve has that restriction but
> for mod_dav_svn the client can set svn:date by sending a PROPPATCH at
> any time during the commit.
> 
> So the txn gets created with a date that is not wanted. At some point
> later the date may get changed to a value that is wanted.  When the
> commit is finalised we have to use the txn date only if it has been
> changed,

... or explicitly un-set ...

> otherwise we use 'now'.  Either we mark the txn at the start
> and remove the mark when the date is set, or we start with no mark and
> add it when the date is set.  Either way we have to remove the mark if
> it is present when finalising the commit.  The pre-commit hook can look
> for the presence/absence of the mark to determine whether this
> particular txn is setting the date.
[...]

- Julian

Reply via email to