[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Commit to multiple repositories

From: Adrian Herscu <bmf1972_at_fastmail.fm>
Date: 2006-09-25 17:23:25 CEST

No, I don't need an atomic operation. Just a (simple) batch operation.
Adrian.

Gavin Lambert wrote:
> Quoth Adrian Herscu:
>> Q: ...and what happens if someone want to checkout only a subset of
>> those projects? A: He will get all of them because of the svn:externals!
>
> Not necessarily. That's why the original suggestion was to create a
> private repository on your machine (that contains nothing but empty
> folders with svn:externals references). You can create as many of these
> linking folders as you want, in any combinations that you want, and
> someone else can have completely different ones from you. But if
> certain combinations are common, then you can make a shared repository
> easily enough. The point is that this particular repository never
> contains code, just references to the other repositories that *do*
> contain code.
>
>> - somebody else wants to copy multiple folders, he selects them and
>> choose "copy" and "paste" them in some other location; if some folder
>> doesn't "copy/paste" then a message is thrown and the operation stops
>
> Actually you can't do that without losing history. You have to
> right-click-drag if you want to copy/move files.
>
>> - and yet someone else wants to commit multiple working copies, he
>> selects them and choose "commit"; if some working copy doesn't "commit"
>> then a message is thrown and the operation stops (the same thing apply
>> to few other tsvn operations, e.g. "update", "revert" and "clean up")
>
> It is completely impossible to do a truly atomic commit across multiple
> repositories, even if the UI will let you click a single 'commit' button
> to commit to all of them at once. Imagine this scenario:
>
> 1. user makes changes to files checked out from repository A
> 2. user makes changes to files checked out from repository B
> 3. user commits both sets of changes together (ie. clicks a single
> commit button)
> 4. the changes to repository A were committed successfully
> 5. the changes to repository B could not be committed because of some error
> 6. now, the logical 'commit' operation has failed, but the files
> destined for repository A really have been committed, and are now a
> permanent part of the repository, while repository B has been left
> unchanged
>
> Hence, if you want truly atomic operation (usually because there is some
> dependency between your projects), then you need to keep them in the
> same repository.
>
> (It's also a major pain in the butt to move files from one repository to
> another, especially if you want to keep their history. You're just
> setting yourself up for a world of hurt if you create more repositories
> than you actually need. Most people only need 1, unless there's
> absolutely no overlap whatsoever between two projects, and that's very
> rare.)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: users-help@tortoisesvn.tigris.org
Received on Mon Sep 25 17:27:54 2006

This is an archived mail posted to the TortoiseSVN Users mailing list.