Which source control paradigm and solution to embed in a custom editor application?
        Posted  
        
            by Greg Harman
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Greg Harman
        
        
        
        Published on 2010-06-08T02:09:39Z
        Indexed on 
            2010/06/08
            2:12 UTC
        
        
        Read the original article
        Hit count: 349
        
application-design
|source-control
I am building an application that manages a number of custom objects, which may be edited concurrently by multiple users (using different instances of the application). These objects have an underlying serialized representation, and my plan is to persist them (through my application UI) in an external source control system. Of course this implies that my application can check the current version of an object for updates, a merging interface for each object, etc.
My question is what source control paradigm(s) and specific solution(s) to support and why. The way I (perhaps naively) see the source control world is three general paradigms:
- Single-repository, locked access (MS SourceSafe)
 - Single-repository, concurrent access (CVS/SVN)
 - Distributed (Mercurial, Git)
 
I haven't heard of anyone using #1 for quite a number of years, so I am planning to disregard this case altogether (unless I get a compelling argument otherwise). However, I'm at a loss as to whether to support #2 or #3, and which specific implementations. I'm concerned that the use paradigms are subtly different enough that I can't adequately capture basic operations in a single UI.
The last bit of information I should convey is that this application is intended to be deployed in a commercial setting, where a source control system may already be in use. I would prefer not to support more than one solution unless it's really a deal-breaker, so wide adoption in a corporate setting is a plus.
© Stack Overflow or respective owner