Getting started with a content filter

Chris Hecker checker at d6.com
Thu Jul 28 10:04:53 UTC 2011


> I'm surprised you consider lock-management-by-walking- around a
> reasonable workflow,

It's way better than the alternative, which is two different artists 
spending a day working on the same file, and then having to either 
choose which version to keep, pissing off one of the artists, or forcing 
them to spend another day "merging" their work, pissing off both of 
them.  And yes, the rate of collisions is low, because everybody is 
working on different stuff most of the time, and that stuff is (at least 
roughly) centrally planned by producers or art directors.  But, the VCS 
has to at least put up a fight if two people try to work on the same 
thing.  Walking around, IM, a phone call, these are all reasonably 
efficient ways of dealing with the problem, even on distributed game 
teams.  If you're in Montreal and you find somebody in Shanghai has 
locked a texture file you want to edit, you send them an email, and then 
go work on something else until they reply.  It's just a different set 
of use-cases from programming, where that would block you completely 
because you can't fix the header or whatever and you can't finish your 
feature because of that.  It works fine for art assets.

> I'm also surprised that you expect editors to universally refuse to
> edit read-only files.

It may not be universal, but they almost all warn if the file is 
read-only, mostly because they've been made to work well with p4 over 
the past decade.

> Well, you'd have to wrap the editors in scripts or a GUI front-end
> to make the workflow transparent.

Artists can be trained to use p4win and similar things just fine.  They 
just need help for things they can't magically know, like somebody else 
on the team is in the middle of editing the same psd.  That's the 
problem we're trying to solve here, and it's totally solvable with a 
couple reasonable assumptions.

> Edit-locking is a serious design problem, though, because it can
> only be made to work reliably in a very centralized context.

Sure, which is why I was musing about the general dvcs case in my 
previous mail, but the centralized case is still an incredibly important 
use-case (at least for my industry, and I would assume any industry that 
has humans editing large unmergable binary files).  It's important not 
to get hung up on not being able to solve the hard theoretical problem 
perfectly, and not use that as an excuse to not solve the important and 
relatively easy practical problem that people actually need solved.

Again, all this may be totally specific to my industry (video games), 
but I'd guess it isn't.  And, as I was remarking to Martin and John 
offlist, if bzr solved these problems right, like making large binary 
files 1st class citizens rather than handled with hacky plugins, then it 
would be a big leap forward for dvcs.  I know a lot of people in the 
game industry who would love to switch to dvcs from p4/svn, but they 
have to have the large unmergable binary file problems solved first.  My 
guess is open source projects will start to get more and more assets 
like these in them as things become more graphically oriented, too.

Chris




On 2011/07/28 02:13, Stephen J. Turnbull wrote:
> Chris Hecker writes:
>   >
>   >  >  On the other hand, I'm not sure that autodelete of old revisions is
>   >  >  such a good idea.
>   >
>   >  I'd be okay with a manual prune of old history if it was fast and worked
>   >  well.  But, once the feature is in, there's no reason you couldn't also
>   >  have it run automatically for artists as an option.
>
> True.  My bet is that you'll need to tune frequency for some of them,
> though.
>
>   >  I'm not sure why you say the locking thing doesn't work with a
>   >  centralized vcs; it works fine in practice.
>
> Well, as I said it will work if you have a sufficiently low frequency
> of collisions.  I'm surprised you consider lock-management-by-walking-
> around a reasonable workflow, but obviously I've underestimated the
> cost of a simultaneous edit or overestimated the cost of "walking
> around" in your environment (probably both).
>
> I'm also surprised that you expect editors to universally refuse to
> edit read-only files.  Some text editors, at least programmers'
> editors on Unix, are perfectly happy to allow you to edit content
> loaded from a read-only file.  You only find out about that when you
> try to save, and the editor tells you the original is read-only and
> asks for an alternative name, or (given POSIX semantics for
> directories) whether you want to try to force-write the original.
>
>   >  It has to be supported by the vcs because the reality is it isn't
>   >  supported by all (any?) editors, so that's a non-starter.
>
> Well, you'd have to wrap the editors in scripts or a GUI front-end to
> make the workflow transparent.
>
>   >  I'm not sure what you could do about the online requirement to make it
>   >  less heresy,
>
> Requiring that the VCS be online most of the time is not heresy in
> Bazaar.  Bazaar supports lightweight checkouts (and does it well),
> which require contact with the server for anything related to
> revisions other than the one checked-out.
>
> Edit-locking is a serious design problem, though, because it can only
> be made to work reliably in a very centralized context.  As you've
> acknowledged (indirectly) it's probably quite possible to come up with
> a robust design presuming your environment, but it's going to be very
> tough nut to crack for the general user if there's even a teeny bit of
> distributedness (eg, stacked branches) involved.
>



More information about the bazaar mailing list