// Copyright 2020 The Jujutsu Authors // // 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"; package working_copy; enum FileType { Normal = 0; Symlink = 1; Executable = 2; Conflict = 3 [deprecated = true]; GitSubmodule = 4; } message FileState { int64 mtime_millis_since_epoch = 1; uint64 size = 2; FileType file_type = 3; // Set only if file_type is Conflict bytes conflict_id = 4 [deprecated = true]; } message FileStateEntry { string path = 1; FileState state = 2; } message SparsePatterns { repeated string prefixes = 1; } message TreeState { bytes legacy_tree_id = 1; // Alternating positive and negative terms if there's a conflict, otherwise a // single (positive) value repeated bytes tree_ids = 5; repeated FileStateEntry file_states = 2; SparsePatterns sparse_patterns = 3; WatchmanClock watchman_clock = 4; } message WatchmanClock { oneof watchman_clock { string string_clock = 1; int64 unix_timestamp = 2; } } message Checkout { // The operation at which the working copy was updated. bytes operation_id = 2; // An identifier for this workspace. It is used for looking up the current // working-copy commit in the repo view. Currently a human-readable name. // TODO: Is it better to make this a UUID and a have map that to a name in // config? That way users can rename a workspace. string workspace_id = 3; reserved 1; }