mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-02 18:01:05 +00:00
da0bbbe637
Git refs are important at least for understanding where the remote branches are. This commit adds support for tracking them in the view and makes `git::import_refs()` update them. When merging views (either because of concurrent operations or when undoing an earlier operation), there can be conflicts between git ref changes. I ignored that for now and let the later operation win. That will probably be good enough for a while. It's not hard to detect the conflicts, but I haven't yet decided how to handle them. I'm leaning towards representing the conflicting refs in the view just like how we represent conflicting files in the tree.
49 lines
1.3 KiB
Protocol Buffer
49 lines
1.3 KiB
Protocol Buffer
// Copyright 2020 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
message GitRef {
|
|
string name = 1;
|
|
// Always a commit id. Refs pointing to a non-commit object are not
|
|
// included.
|
|
bytes commit_id = 2;
|
|
}
|
|
|
|
message View {
|
|
repeated bytes head_ids = 1;
|
|
bytes checkout = 2;
|
|
// Only a subset of the refs. For example, does not include refs/notes/.
|
|
repeated GitRef git_refs = 3;
|
|
}
|
|
|
|
message Operation {
|
|
bytes view_id = 1;
|
|
repeated bytes parents = 2;
|
|
OperationMetadata metadata = 3;
|
|
}
|
|
|
|
// TODO: Share with store.proto? Do we even need the timezone here?
|
|
message Timestamp {
|
|
uint64 millis_since_epoch = 1;
|
|
int32 tz_offset = 2;
|
|
}
|
|
|
|
message OperationMetadata {
|
|
Timestamp start_time = 1;
|
|
Timestamp end_time = 2;
|
|
string description = 3;
|
|
string hostname = 4;
|
|
string username = 5;
|
|
}
|