mirror of
https://github.com/git/git.git
synced 2024-12-12 03:14:11 +08:00
b8f43b120b
These used to be for manipulating the in-memory repo_tree structure, but nowadays they are convenience wrappers to handle a few git-vs-svn mismatches: 1. Git does not track empty directories but Subversion does. When looking up a path in git that Subversion thinks exists and finding nothing, we can safely assume that the path represents a directory. This is needed when a later Subversion revision modifies that directory. 2. Subversion allows deleting a file by copying. In Git fast-import we have to handle that more explicitly as a deletion. These are details of the tool's interaction with git fast-import. Move them to fast_export.c, where other such details are handled. This way the function names do not start with a repo_ prefix that would clash with the repository object introduced in v2.14.0-rc0~38^2~16 (repository: introduce the repository object, 2017-06-22) or an svn_ prefix that would clash with libsvn (in case someone wants to link this code with libsvn some day). Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
35 lines
1.4 KiB
C
35 lines
1.4 KiB
C
#ifndef FAST_EXPORT_H_
|
|
#define FAST_EXPORT_H_
|
|
|
|
struct strbuf;
|
|
struct line_buffer;
|
|
|
|
void fast_export_init(int fd);
|
|
void fast_export_deinit(void);
|
|
|
|
void fast_export_delete(const char *path);
|
|
void fast_export_modify(const char *path, uint32_t mode, const char *dataref);
|
|
void fast_export_note(const char *committish, const char *dataref);
|
|
void fast_export_begin_note(uint32_t revision, const char *author,
|
|
const char *log, unsigned long timestamp, const char *note_ref);
|
|
void fast_export_begin_commit(uint32_t revision, const char *author,
|
|
const struct strbuf *log, const char *uuid,const char *url,
|
|
unsigned long timestamp, const char *local_ref);
|
|
void fast_export_end_commit(uint32_t revision);
|
|
void fast_export_data(uint32_t mode, off_t len, struct line_buffer *input);
|
|
void fast_export_buf_to_data(const struct strbuf *data);
|
|
void fast_export_blob_delta(uint32_t mode,
|
|
uint32_t old_mode, const char *old_data,
|
|
off_t len, struct line_buffer *input);
|
|
|
|
/* If there is no such file at that rev, returns -1, errno == ENOENT. */
|
|
int fast_export_ls_rev(uint32_t rev, const char *path,
|
|
uint32_t *mode_out, struct strbuf *dataref_out);
|
|
int fast_export_ls(const char *path,
|
|
uint32_t *mode_out, struct strbuf *dataref_out);
|
|
|
|
void fast_export_copy(uint32_t revision, const char *src, const char *dst);
|
|
const char *fast_export_read_path(const char *path, uint32_t *mode_out);
|
|
|
|
#endif
|