summaryrefslogtreecommitdiff
path: root/vcs-svn/repo_tree.h
diff options
context:
space:
mode:
authorDavid Barr <david.barr@cordelta.com>2010-08-09 22:48:10 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-08-15 02:35:37 (GMT)
commitc0e6c23dca84227167a6fe1077503ddf32208919 (patch)
tree90db6a49a0ab0210a229cecc136fd946f4919860 /vcs-svn/repo_tree.h
parent3bbaec00a8ffc6ea7e71c3b707851fe663d93a45 (diff)
downloadgit-c0e6c23dca84227167a6fe1077503ddf32208919.zip
git-c0e6c23dca84227167a6fe1077503ddf32208919.tar.gz
git-c0e6c23dca84227167a6fe1077503ddf32208919.tar.bz2
Infrastructure to write revisions in fast-export format
repo_tree maintains the exporter's state and provides a facility to to call fast_export, which writes objects to stdout suitable for consumption by fast-import. The exported functions roughly correspond to Subversion FS operations. . repo_add, repo_modify, repo_copy, repo_replace, and repo_delete update the current commit, based roughly on the corresponding Subversion FS operation. . repo_commit calls out to fast_export to write the current commit to the fast-import stream in stdout. . repo_diff is used by the fast_export module to write the changes for a commit. . repo_reset erases the exporter's state, so valgrind can be happy. [rr: squelched compiler warnings] [jn: removed support for maintaining state on-disk, though we may want to add it back later] Signed-off-by: David Barr <david.barr@cordelta.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'vcs-svn/repo_tree.h')
-rw-r--r--vcs-svn/repo_tree.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/vcs-svn/repo_tree.h b/vcs-svn/repo_tree.h
new file mode 100644
index 0000000..5476175
--- /dev/null
+++ b/vcs-svn/repo_tree.h
@@ -0,0 +1,26 @@
+#ifndef REPO_TREE_H_
+#define REPO_TREE_H_
+
+#include "git-compat-util.h"
+
+#define REPO_MODE_DIR 0040000
+#define REPO_MODE_BLB 0100644
+#define REPO_MODE_EXE 0100755
+#define REPO_MODE_LNK 0120000
+
+#define REPO_MAX_PATH_LEN 4096
+#define REPO_MAX_PATH_DEPTH 1000
+
+uint32_t next_blob_mark(void);
+uint32_t repo_copy(uint32_t revision, uint32_t *src, uint32_t *dst);
+void repo_add(uint32_t *path, uint32_t mode, uint32_t blob_mark);
+uint32_t repo_replace(uint32_t *path, uint32_t blob_mark);
+void repo_modify(uint32_t *path, uint32_t mode, uint32_t blob_mark);
+void repo_delete(uint32_t *path);
+void repo_commit(uint32_t revision, uint32_t author, char *log, uint32_t uuid,
+ uint32_t url, long unsigned timestamp);
+void repo_diff(uint32_t r1, uint32_t r2);
+void repo_init(void);
+void repo_reset(void);
+
+#endif