221 reputation
15
bio website edwardthomson.com
location Durham, NC
age 35
visits member for 3 years, 6 months
seen Jun 30 at 2:41

I work on cross-platform tools for Microsoft Team Foundation Server.


Feb
25
awarded  Caucus
Nov
7
comment Why are source control systems still mostly backed with files?
@mikebabcock Sorry, that sounded sort of snarky and wasn't meant to. My point is that without any of the binary files (all the objects), you don't have a repo.
Nov
7
comment Why are source control systems still mostly backed with files?
@mikebabcock that link didn't really elucidate. I don't think COMMIT_EDITMSG is really part of the repository format, so I'm not sure what files you're talking about.
Nov
6
awarded  Commentator
Nov
6
comment Why are source control systems still mostly backed with files?
@mikebabcock: aside from refs and the reflog, there's really not much that's usefully catable in a git repo. The index is binary, the objects are (at best) deflated or (at worst) stuck in a packfile. So sure, you can edit a ref with a text editor, but that's about it.
Nov
6
comment Why are source control systems still mostly backed with files?
@Andy: despite both being from SourceGear, I think you should definitely count Vault and Veracity separately.
Nov
6
awarded  Yearling
Nov
5
comment Why are source control systems still mostly backed with files?
@ZJR: I don't think the original question ever specified distributed version control, it asked about version control systems in general. Further, your text editor argument is a little flat, since plenty of systems don't store just flat text files. Even git has plenty of binary file formats (loose objects, pack files, etc) that render your text editor useless.
Nov
5
comment Why are source control systems still mostly backed with files?
@hyde: No, in a DVCS model, branches occur at the entire repository level. In a (typical) centralized version control model, history is a line and branches and merges occur in the repository. Not on the repository. History is not a DAG in, say, Subversion or CVS, regardless of their ability to branch and merge. ericsink.com/entries/dvcs_dag_1.html Like I said, you could call a three-way merge "building a DAG", but that would pretty well obfuscate what DAG means in a history model in a distributed system.
Nov
5
comment Why are source control systems still mostly backed with files?
@Andy: any version control system with a linear history model (eg, SVN, Vault, TFS) is going to take a lock the repository to do a checkin. Otherwise, you couldn't guarantee coherence. (You could - perhaps - narrow the lock if the checkins had no overlapping paths, but I suspect that nobody does this.) Git could allow multiple simultaneous commits, but committing on the same branch would result in one commit becoming the head of the branch and the other an unreachable commit, so it's advantageous to lock if you're pushing to a repo that requires new commits be children of the current head.
Nov
4
comment Why are source control systems still mostly backed with files?
How does CVS build a graph when it does a merge? It doesn't even have changesets, after all. (And yes, a three-way merge is, I guess, pedantically a "DAG" containing three files. But again, that's not really a useful description.)
Nov
4
comment Why are source control systems still mostly backed with files?
@mikebabcock: fair point.
Nov
4
comment Why are source control systems still mostly backed with files?
Your choice of git "for argument's sake" is an important point here: git has a very good model for writing its objects, but many tools don't. With git, if the computer is powered off in the middle of a commit, you'll have written some of the objects to the filesystem and they'll merely be unreachable. With other VCSs, you may have appended the changes to half the files (and confusion ensues.) You could argue that other version control tools are poorly designed (and you'd be right), but when you're writing a VCS, it's a lot easier to just use a SQL transaction and let it do the right thing.
Nov
4
answered Why are source control systems still mostly backed with files?
Nov
3
comment Why are source control systems still mostly backed with files?
DAGs are only used in DVCS (unless you consider a linear history an exceptionally simple DAG, which it is, but that's not really a helpful abstraction.) When your history is linear, with monotonically increasing changesets, a SQL database makes a lot more sense.
Jan
12
comment Is it bad practice to create new objects without storing them?
@Buttons840: I'm removing the SWT tag to remove any further confusion that this is about SWT in particular.
Jun
20
answered Is there a canonical book on mathematics for programmers?
May
26
awarded  Teacher
May
26
awarded  Autobiographer
May
26
awarded  Supporter