git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Merge-friendly text-based data storage
@ 2012-03-26 14:19 Richard Hartmann
  2012-03-26 18:17 ` Junio C Hamano
  2012-03-27  9:12 ` Holger Hellmuth
  0 siblings, 2 replies; 8+ messages in thread
From: Richard Hartmann @ 2012-03-26 14:19 UTC (permalink / raw)
  To: Git List

Hi all,

I am looking for information on how to design a merge-friendly data
layout. Oddly enough, there does not seem to be much online other than
the obvious "use text-based lines, one per data point".

My current plan looks like:

  metamonger\tversion: 0
  filename\towner_name\tgroup_name\tetc\tpp
  ##########
  file1\trichih\trichih\tfoo\tbar
  relative/path/to/file2\troot\troot\tfoo\tbar

the two upper lines are designed to fail a merge if the version of the
file layout changes. Anything starting with a hash-pound is a comment
and will be ignored.

All other lines are data about random files, relative paths being
allowed, absolute paths and upper paths being forbidden for security
reasons. Values are tab-separated as the format is expressively meant
to be edited by hand. Hex, if needed, would be ASCII-armoured.

As long as there are no lines that start with the same file name, this
file format would allow for efficient merging _if_ git has an internal
concept of line identifiers.


Are there any considerations I missed? Are there any design
guides/best practices to follow?



Thanks,
Richard

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-03-27 15:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-26 14:19 Merge-friendly text-based data storage Richard Hartmann
2012-03-26 18:17 ` Junio C Hamano
2012-03-26 19:06   ` Richard Hartmann
2012-03-26 19:51     ` Junio C Hamano
2012-03-27  9:12 ` Holger Hellmuth
2012-03-27 13:01   ` Richard Hartmann
2012-03-27 15:21     ` Junio C Hamano
2012-03-27 15:46       ` Holger Hellmuth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).