Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Use case: GIT to manage transactions in a CMS?

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:19

"J. David Ibáñez" [off-list ref] writes:
Maybe I could hack something, are there some docs explaining the
internal format of git objects? or, where to look in the source to
find this info?
The index file is mostly dealt with by read-cache.c (despite its
name, it has both read and write routines).  The easiest way to
understand the tree object format is by reading write-tree.c.

But the format is the easiest part.  You have to realize that
this is a nontrivial task.

The merge algorithm assumes that it can detect a presense of
directory by finding a blob under that.  You need to teach
'read-tree -m' that sometimes there is an empty directory
recorded in the index file.  This is very important to avoid
directory-file conflicts during the merge.

Tree object side is probably easier because we _can_ write an
empty tree object, and presumably three tree-walker
implementations (one used in read-tree and object layer, one in
diff-tree and another in merge-tree) should all handle empty
trees gracefully, but still its callers need to be verified.
Another point, the application is written in Python, right now
I have to open a shell to run the git commands.
I always have a shell open so it does not sound a big deal to me
;-).
It would be nice if the core functionality was implemented in a C
library, then with a Python wrapper I could use git without going
through the shell.

Is this something to be expected? There will be a "libgit" sometime
in the future?
Yes, read the list archive.

But not yet.  The core level has been fluctuating quite a bit.  The
latest round being the object layer bookkeeping changes.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help