Closed GoogleCodeExporter closed 9 years ago
Expanding on the idea of atomizing revisions to session subfolders also
introduces the ability to do things like clone specific sessions between boar
repos without having to clone *all* sessions.
Say I have a boar repo on my home machine where I maintain both work and
personal projects and then a boar repo at work where I only want to manage my
work projects. Assuming I do something like prepend my session names with
"work_" and "personal_", if the clone command was modified slighty to accept
session names, it would be possible to push/sync all my "work_" sessions in a
completely "clean" way.
Having revision folders incremented globally entangles completely unrelated
sessions in a repo in an unintuitive unfriendly way. It makes sessions
completely nonportable since a check in of any session will affect the base
session of any future checkin in a nondeterministic manner whereas having
sessions isolated to their own subfolders means that different boar repos can
maintain an arbitrary number of sessions but still sync *certain* sessions
between them (given that boar is intended as a personal vcs, not a dvcs, merge
conflicts should be almost nonexistant, or very simple cases so long as a user
takes care to keep repo clones in sync).
While I realize boar champions a write once design, "upgrading" the repo format
could be accomplished without destroying the old sessions folder by renaming it
to something like sessions_old, and given the fact that all the session data is
hashed, and the only change being introduced is wrt to folder names and minor
alterations to the session.json files (significantly no changes to the
bloblist.json is required), then it should be fairly trivial to validate the
integrity of the sessions folder post upgrade.
And more importantly, I do think this *simplifies* an existing unnecessary
complexity, rather than introducing complexity.
Ok... that's my sales pitch, I'll lay off until you have a chance to respond ;)
Original comment by cryptob...@gmail.com
on 2 Mar 2012 at 2:33
Having a numeric id for every snapshot is very convenient in the code (and
convenient code makes for fewer bugs). Unfortunately it might also be a bit
confusing for the user for the reasons you mention.
Having session names as file names would be intuitive, but would introduce
issues with file system capabilities. For instance, "Session" and "SESSION" are
the same thing on Windows, but different things on Linux filesystems. Not to
mention all the possibilities of unicode complications...
The features you speak of, like session specific cloning, would be possible
with the current system as well.
There are some minor changes I'd like to do if I could travel back in time. But
in the end, the data format is already set, for better or worse.
Original comment by ekb...@gmail.com
on 2 Mar 2012 at 5:04
Original issue reported on code.google.com by
cryptob...@gmail.com
on 2 Mar 2012 at 2:11