just playing with tangled
1// Copyright 2020 The Jujutsu Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package working_copy;
18
19enum FileType {
20 Normal = 0;
21 Symlink = 1;
22 Executable = 2;
23 Conflict = 3 [deprecated = true];
24 GitSubmodule = 4;
25}
26
27message FileState {
28 int64 mtime_millis_since_epoch = 1;
29 uint64 size = 2;
30 FileType file_type = 3;
31 // Set only if file_type is Conflict
32 bytes conflict_id = 4 [deprecated = true];
33}
34
35message SparsePatterns {
36 repeated string prefixes = 1;
37}
38
39message TreeState {
40 bytes tree_id = 1;
41 map<string, FileState> file_states = 2;
42 SparsePatterns sparse_patterns = 3;
43 WatchmanClock watchman_clock = 4;
44}
45
46message WatchmanClock {
47 oneof watchman_clock {
48 string string_clock = 1;
49 int64 unix_timestamp = 2;
50 }
51}
52
53message Checkout {
54 // The operation at which the working copy was updated.
55 bytes operation_id = 2;
56 // An identifier for this workspace. It is used for looking up the current
57 // working-copy commit in the repo view. Currently a human-readable name.
58 // TODO: Is it better to make this a UUID and a have map that to a name in
59 // config? That way users can rename a workspace.
60 string workspace_id = 3;
61 // The checked-out commit, which can be viewed as a cache of the working-copy
62 // commit ID recorded in `operation_id`'s operation. No longer used.
63 // TODO: Delete this mid 2022 or so
64 bytes commit_id = 1;
65}