versioned_graph/commit
more w.i.p. on documentation
author | Jacco van Ossenbruggen |
---|---|
Mon Jun 23 11:03:34 2014 +0200 | |
committer | Jacco van Ossenbruggen |
Mon Jun 23 11:03:34 2014 +0200 | |
commit | 92fcba9ece6a2d343c6a202d518715ea749a77bf |
tree | 6ca54131c64de4ef1fdf51411066dc387edd6d76 |
parent | 74721f22ab043d204ce5bb35dd6d0e0e60e15e46 |
Diff style: patch stat
diff --git a/lib/gv_git_io.pl b/lib/gv_git_io.pl index 52c3542..f9e8062 100644 --- a/lib/gv_git_io.pl +++ b/lib/gv_git_io.pl @@ -10,10 +10,17 @@ gv_parse_commit/2 ]). +/* Implement low level (plumbing) git commands using the SWI Prolog git library. +*/ + :- use_module(library(git)). :- use_module(parse_git_objects). - +%% gv_init_git(+Options) is semidet. +% +% Init git directory specified in Options as a bare git +% repository. Succeeds silently as no-op when directory already +% exists. gv_init_git(Options) :- option(directory(Dir), Options), ( exists_directory(Dir) @@ -22,6 +29,17 @@ gv_init_git(Options) :- catch(git(['init', '--bare'],[directory(Dir)]), _, fail) ). +%% gv_parse_tree(+Hash, TreeObject) is semidet. +% +% Read tree object from git repository into a TreeObject term. +gv_parse_tree(Hash, TreeObject):- + gv_git_cat_file(Hash, Codes), + phrase(tree(TreeObject), Codes). + +gv_parse_commit(Hash, CommitObject):- + gv_git_cat_file(Hash, Codes), + phrase(commit(CommitObject), Codes). + gv_current_branch_git(Ref) :- setting(graph_version:gv_git_dir, Dir), catch(git(['symbolic-ref', 'HEAD'],[directory(Dir), output(OutCodes)]), _, fail),!, @@ -86,10 +104,3 @@ gv_git_cat_file(Hash, Codes) :- _, fail). -gv_parse_tree(Hash, TreeObject):- - gv_git_cat_file(Hash, Codes), - phrase(tree(TreeObject), Codes). - -gv_parse_commit(Hash, CommitObject):- - gv_git_cat_file(Hash, Codes), - phrase(commit(CommitObject), Codes). diff --git a/lib/gv_git_objects.pl b/lib/gv_git_objects.pl index ff5f03f..ec92740 100644 --- a/lib/gv_git_objects.pl +++ b/lib/gv_git_objects.pl @@ -29,7 +29,7 @@ :- rdf_meta tree_triple_to_git(t,o). -%% gv_store_graph(+Options, +Graph, -Blob) is det. +%% gv_create_blob_object(+Options, +Graph, -Blob) is det. % % Snapshot of Graph is stored in Blob. @@ -82,7 +82,21 @@ gv_create_tree_object(Triples, TreeURI, Options) :- -> gv_store_git_object(Hash, TreeContent, [type(tree)|Options]) ; true ). - +%% gv_create_commit_object(+T, +P, +C, +M, -Commit, +O) is semidet. +% +% Create a Commit object with the mandatory following properties: +% * tree(T) +% * parent(P) +% * committer_url(C) +% * comment(M). +% +% +% Optional object in Options, along with the default values +% * committer_email(mailto:no_email@example.com) +% * committer_date(now) +% * author_url(committer_url) +% * author_email(committer_email) +% * author_date(now) gv_create_commit_object(Tree, Parent, CommitterURL, Comment, Commit, Options) :- setting(graph_version:gv_commit_store, DefaultStoreMode), @@ -233,7 +247,7 @@ git_tree_pair_to_triple([hash(H),name(Senc)], rdf(Sdec,P,O)) :- gv_hash_uri(H,O). -%% gv_tree_store(+Tree, -Triples) is semidet. +%% gv_tree_triples(+Tree, -Triples) is semidet. % % Unify Triples with the content of tree object Tree. % If Tree is a named graph in the triple store, just @@ -254,6 +268,9 @@ gv_tree_triples(Tree, Triples) :- gv_parse_tree(Hash, TreeObject), maplist(git_tree_pair_to_triple, TreeObject, Triples). +%% gv_init_rdf(+Ref, +Options) is det. +% +% Make sure the current branch in the head graph points to Ref. gv_init_rdf(Ref, Options) :- option(gv_refs_prefix(Refs), Options),