On Wed, Oct 19, 2011 at 09:38:44AM -0700, Mike Meyer wrote:
> This requires a lot of work on fossils part in order to be reliable. Unlike
> source changes, you can't do a commit and then require a merge before
> pushing if there's a collision. There are also nasty restrictions on how you
> do things. In particular, you have to have autosync on (or ignore it if off)
> and be connected to all repositories you push/pull from to use it.
> 
> Given those restrictions, if you're looking to change things to support
> fossil, wouldn't you be better off using a tool designed for managing
> binaries ( an artifact repository) instead of one designed for managing
> textual sources?

I think fossil is a good tool for managing binaries too. And often binaries and
textual sources better go together in a single repository.

If I had to implement that on fossil, I'd use some kind of table like the shun
table, propagated on autosync, that would ban a commit modifying a file.
'commit' could have a '--force', that would bypass the locks. I think they
should be informative, and not restrictive.

But it's not only locks alone that help, because that would depend on how often
you sync, and you would notice new locks only when syncing, and that would be
already late, because you may have already modified the file in your working
directory, requiring a complex merge.

Svn introduces the property of files of "needs_lock". Those files, once checked
out, are checked out in read-only into disk, and get the writeable state only if
properly got a lock. Of course read-only-ness can be bypassed by the user owning
the file, and that also has only an informative role. Maybe something like
propagated tags could mark files as needs_lock, and act accordingly on
updates/checkouts/...

Regards,
Lluís.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to