Commit cade6be9 authored by Georges Racinet's avatar Georges Racinet 🦑
Browse files

Protocol: bumped to v13.11.1

This goes with the general preparation for Heptapod 0.22 and comes
with interesting diff options.
parent 7545622bd4eb
Pipeline #22335 passed with stages
in 1 minute and 7 seconds
......@@ -25,6 +25,8 @@
// GetLFSPointers retrieves LFS pointers from a given set of object IDs.
// This RPC filters all requested objects and only returns those which refer
// to a valid LFS pointer.
//
// Deprecated in favor of `ListLFSPointers`, passing object IDs as revisions.
rpc GetLFSPointers(GetLFSPointersRequest) returns (stream GetLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
......@@ -34,6 +36,10 @@
// GetNewLFSPointers retrieves LFS pointers for a limited subset of the
// commit graph. It will return all LFS pointers which are reachable by the
// provided revision, but not reachable by any of the limiting references.
//
// Deprecated in favor of `ListLFSPointers`. `NotInAll` can be replaced with
// `REVISION` `--not` `--all`, while `NotInRefs` can be replaced with
// `REVISION` `--not` `NotInRevs...`.
rpc GetNewLFSPointers(GetNewLFSPointersRequest) returns (stream GetNewLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
......@@ -41,8 +47,10 @@
}
// GetAllLFSPointers retrieves all LFS pointers of the given repository.
//
// Deprecated in favor of `ListLFSPointers`, passing `--all` as revision.
rpc GetAllLFSPointers(GetAllLFSPointersRequest) returns (stream GetAllLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
......@@ -44,8 +52,30 @@
rpc GetAllLFSPointers(GetAllLFSPointersRequest) returns (stream GetAllLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
// ListLFSPointers retrieves LFS pointers reachable from a given set of
// revisions by doing a graph walk. This includes both normal revisions like
// an object ID or branch, but also the pseudo-revisions "--all" and "--not"
// as documented in git-rev-parse(1). Revisions which don't directly or
// transitively reference any LFS pointers are ignored. It is not valid to
// pass revisions which do not resolve to an existing object.
rpc ListLFSPointers(ListLFSPointersRequest) returns (stream ListLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
// ListAllLFSPointers retrieves all LFS pointers in the repository. In
// contrast to `GetAllLFSPointers`, this RPC also includes LFS pointers which
// are not reachable by any reference.
rpc ListAllLFSPointers(ListAllLFSPointersRequest) returns (stream ListAllLFSPointersResponse) {
option (op_type) = {
op: ACCESSOR
};
}
}
message GetBlobRequest {
......@@ -166,3 +196,36 @@
// LfsPointers is the list of LFS pointers.
repeated LFSPointer lfs_pointers = 1;
}
// ListLFSPointersRequest is a request for the ListLFSPointers RPC.
message ListLFSPointersRequest {
// Repository is the repository for which LFS pointers should be retrieved
// from.
Repository repository = 1[(target_repository)=true];
// Revisions is the list of revisions to retrieve LFS pointers from. Must be
// a non-empty list.
repeated string revisions = 2;
// Limit limits the number of LFS pointers returned.
int32 limit = 3;
}
// ListLFSPointersResponse is a response for the ListLFSPointers RPC.
message ListLFSPointersResponse {
// LfsPointers is the list of LFS pointers which were requested.
repeated LFSPointer lfs_pointers = 1;
}
// ListAllLFSPointersRequest is a request for the ListAllLFSPointers RPC.
message ListAllLFSPointersRequest {
// Repository is the repository for which LFS pointers should be retrieved
// from.
Repository repository = 1[(target_repository)=true];
// Limit limits the number of LFS pointers returned.
int32 limit = 3;
}
// ListAllLFSPointersResponse is a response for the ListAllLFSPointers RPC.
message ListAllLFSPointersResponse {
// LfsPointers is the list of LFS pointers which were requested.
repeated LFSPointer lfs_pointers = 1;
}
......@@ -176,6 +176,12 @@
Repository repository = 1 [(target_repository)=true];
bytes from = 2;
bytes to = 3;
// The page token is the last commit OID that was sent. It's expected to be the
// full object ID to guard against ambigious OIDs. Using the page parameter is
// effectivaly equivalent to setting the `from` parameter to the commit object
// identifier.
PaginationParameter pagination_params = 4;
}
message CommitsBetweenResponse {
......
......@@ -44,6 +44,13 @@
}
message CommitDiffRequest {
enum DiffMode {
// DEFAULT is the standard diff mode and results in a linewise diff for textfiles.
DEFAULT = 0;
// WORDDIFF is a word diff and computes the diff for whitespace separated words instead of for whole lines.
WORDDIFF = 1;
}
Repository repository = 1 [(target_repository)=true];
string left_commit_id = 2;
string right_commit_id = 3;
......@@ -65,6 +72,9 @@
int32 safe_max_files = 11;
int32 safe_max_lines = 12;
int32 safe_max_bytes = 13;
// DiffMode is the mode used for generating the diff. Please refer to the enum declaration for supported modes.
DiffMode diff_mode = 15;
}
// A CommitDiffResponse corresponds to a single changed file in a commit.
......@@ -176,4 +186,3 @@
bytes path = 1;
Status status = 2;
}
......@@ -24,5 +24,10 @@
};
}
// UpdateRemoteMirror compares the references in the target repository and its remote mirror
// repository. Any differences in the references are then addressed by pushing the differing
// references to the mirror. Created and modified references are updated, removed references are
// deleted from the mirror. UpdateRemoteMirror updates all tags. Branches are updated if they match
// the patterns specified in the requests.
rpc UpdateRemoteMirror(stream UpdateRemoteMirrorRequest) returns (UpdateRemoteMirrorResponse) {
option (op_type) = {
......@@ -27,6 +32,6 @@
rpc UpdateRemoteMirror(stream UpdateRemoteMirrorRequest) returns (UpdateRemoteMirrorResponse) {
option (op_type) = {
op: MUTATOR
op: ACCESSOR
};
}
rpc FindRemoteRepository(FindRemoteRepositoryRequest) returns (FindRemoteRepositoryResponse) {
......@@ -74,4 +79,5 @@
}
message UpdateRemoteMirrorRequest {
// repository is the repository whose mirror repository to update.
Repository repository = 1 [(target_repository)=true];
......@@ -77,2 +83,3 @@
Repository repository = 1 [(target_repository)=true];
// ref_name is actually the remote to update.
string ref_name = 2;
......@@ -78,2 +85,8 @@
string ref_name = 2;
// only_branches_matching contains patterns to match branches against. Only
// the matched brances are updated in the remote mirror. If no patterns are
// specified, all branches are updated. The patterns should only contain the
// branch name without the 'refs/heads/' prefix. "*" can be used as a wildcard
// to match anything. only_branches_matching can be streamed to the server over multiple
// messages. Optional.
repeated bytes only_branches_matching = 3;
......@@ -79,2 +92,3 @@
repeated bytes only_branches_matching = 3;
// ssh_key is the SSH key to use for accessing to the mirror repository. Optional.
string ssh_key = 4;
......@@ -80,2 +94,3 @@
string ssh_key = 4;
// known_hosts specifies the identities used for strict host key checking. Optional.
string known_hosts = 5;
......@@ -81,5 +96,7 @@
string known_hosts = 5;
// keep_divergent_refs specifies whether or not to update diverged references in the
// mirror repository.
bool keep_divergent_refs = 6;
}
message UpdateRemoteMirrorResponse {
......@@ -82,7 +99,9 @@
bool keep_divergent_refs = 6;
}
message UpdateRemoteMirrorResponse {
// divergent_refs contains a list of references that had diverged in the mirror from the
// source repository.
repeated bytes divergent_refs = 1;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment