summaryrefslogtreecommitdiff
path: root/commit.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-12-28 01:25:43 -0800
committerJunio C Hamano <junkio@cox.net>2006-12-28 01:25:43 -0800
commitb11bd57a384a7bee21245d3895d77d20c33e4d78 (patch)
tree16e1582858224d41d6e8835cef8b576805bb4397 /commit.h
parent6b5a795bf586aa019bbb11ffe9f2fc315ba9765e (diff)
parent37818d7db070f67a20df58ac7d5e04cc63ef1867 (diff)
downloadgit-b11bd57a384a7bee21245d3895d77d20c33e4d78.tar.gz
Merge branch 'js/shallow'
* js/shallow: fetch-pack: Do not fetch tags for shallow clones. get_shallow_commits: Avoid memory leak if a commit has been reached already. git-fetch: Reset shallow_depth before auto-following tags. upload-pack: Check for NOT_SHALLOW flag before sending a shallow to the client. fetch-pack: Properly remove the shallow file when it becomes empty. shallow clone: unparse and reparse an unshallowed commit Why didn't we mark want_obj as ~UNINTERESTING in the old code? Why does it mean we do not have to register shallow if we have one? We should make sure that the protocol is still extensible. add tests for shallow stuff Shallow clone: do not ignore shallowness when following tags allow deepening of a shallow repository allow cloning a repository "shallowly" support fetching into a shallow repository upload-pack: no longer call rev-list
Diffstat (limited to 'commit.h')
-rw-r--r--commit.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/commit.h b/commit.h
index 10eea9f26f..936f8fce30 100644
--- a/commit.h
+++ b/commit.h
@@ -97,7 +97,7 @@ void sort_in_topological_order_fn(struct commit_list ** list, int lifo,
struct commit_graft {
unsigned char sha1[20];
- int nr_parent;
+ int nr_parent; /* < 0 if shallow commit */
unsigned char parent[FLEX_ARRAY][20]; /* more */
};
@@ -107,5 +107,12 @@ int read_graft_file(const char *graft_file);
extern struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2, int cleanup);
+extern int register_shallow(const unsigned char *sha1);
+extern int unregister_shallow(const unsigned char *sha1);
+extern int write_shallow_commits(int fd, int use_pack_protocol);
+extern int is_repository_shallow();
+extern struct commit_list *get_shallow_commits(struct object_array *heads,
+ int depth, int shallow_flag, int not_shallow_flag);
+
int in_merge_bases(struct commit *rev1, struct commit *rev2);
#endif /* COMMIT_H */