1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
// This file is @generated by prost-build.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefConflictLegacy {
    #[deprecated]
    #[prost(bytes = "vec", repeated, tag = "1")]
    pub removes: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
    #[deprecated]
    #[prost(bytes = "vec", repeated, tag = "2")]
    pub adds: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefConflict {
    #[prost(message, repeated, tag = "1")]
    pub removes: ::prost::alloc::vec::Vec<ref_conflict::Term>,
    #[prost(message, repeated, tag = "2")]
    pub adds: ::prost::alloc::vec::Vec<ref_conflict::Term>,
}
/// Nested message and enum types in `RefConflict`.
pub mod ref_conflict {
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct Term {
        #[prost(bytes = "vec", optional, tag = "1")]
        pub value: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefTarget {
    /// New `RefConflict` type represents both `commit_id` and `conflict_legacy`.
    #[prost(oneof = "ref_target::Value", tags = "1, 2, 3")]
    pub value: ::core::option::Option<ref_target::Value>,
}
/// Nested message and enum types in `RefTarget`.
pub mod ref_target {
    /// New `RefConflict` type represents both `commit_id` and `conflict_legacy`.
    #[allow(clippy::derive_partial_eq_without_eq)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Value {
        #[prost(bytes, tag = "1")]
        CommitId(::prost::alloc::vec::Vec<u8>),
        #[prost(message, tag = "2")]
        ConflictLegacy(super::RefConflictLegacy),
        #[prost(message, tag = "3")]
        Conflict(super::RefConflict),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RemoteBranch {
    #[prost(string, tag = "1")]
    pub remote_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub target: ::core::option::Option<RefTarget>,
    /// Introduced in jj 0.11.
    #[prost(enumeration = "RemoteRefState", optional, tag = "3")]
    pub state: ::core::option::Option<i32>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Branch {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    /// Unset if the branch has been deleted locally.
    #[prost(message, optional, tag = "2")]
    pub local_target: ::core::option::Option<RefTarget>,
    /// TODO: How would we support renaming remotes while having undo work? If
    /// the remote name is stored in config, it's going to become a mess if the
    /// remote is renamed but the configs are left unchanged. Should each remote
    /// be identified (here and in configs) by a UUID?
    #[prost(message, repeated, tag = "3")]
    pub remote_branches: ::prost::alloc::vec::Vec<RemoteBranch>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GitRef {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    /// This field is just for historical reasons (before we had the RefTarget
    /// type). New GitRefs have (only) the target field.
    /// TODO: Delete support for the old format.
    #[prost(bytes = "vec", tag = "2")]
    pub commit_id: ::prost::alloc::vec::Vec<u8>,
    #[prost(message, optional, tag = "3")]
    pub target: ::core::option::Option<RefTarget>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Tag {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub target: ::core::option::Option<RefTarget>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct View {
    #[prost(bytes = "vec", repeated, tag = "1")]
    pub head_ids: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
    #[deprecated]
    #[prost(bytes = "vec", tag = "2")]
    pub wc_commit_id: ::prost::alloc::vec::Vec<u8>,
    #[prost(map = "string, bytes", tag = "8")]
    pub wc_commit_ids: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::vec::Vec<u8>,
    >,
    #[prost(message, repeated, tag = "5")]
    pub branches: ::prost::alloc::vec::Vec<Branch>,
    #[prost(message, repeated, tag = "6")]
    pub tags: ::prost::alloc::vec::Vec<Tag>,
    /// Only a subset of the refs. For example, does not include refs/notes/.
    #[prost(message, repeated, tag = "3")]
    pub git_refs: ::prost::alloc::vec::Vec<GitRef>,
    /// This field is just for historical reasons (before we had the RefTarget
    /// type). New Views have (only) the target field.
    /// TODO: Delete support for the old format.
    #[deprecated]
    #[prost(bytes = "vec", tag = "7")]
    pub git_head_legacy: ::prost::alloc::vec::Vec<u8>,
    #[prost(message, optional, tag = "9")]
    pub git_head: ::core::option::Option<RefTarget>,
    /// Whether "@git" branches have been migrated to remote_targets.
    #[prost(bool, tag = "10")]
    pub has_git_refs_migrated_to_remote: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Operation {
    #[prost(bytes = "vec", tag = "1")]
    pub view_id: ::prost::alloc::vec::Vec<u8>,
    #[prost(bytes = "vec", repeated, tag = "2")]
    pub parents: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
    #[prost(message, optional, tag = "3")]
    pub metadata: ::core::option::Option<OperationMetadata>,
}
/// TODO: Share with store.proto? Do we even need the timezone here?
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Timestamp {
    #[prost(int64, tag = "1")]
    pub millis_since_epoch: i64,
    #[prost(int32, tag = "2")]
    pub tz_offset: i32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationMetadata {
    #[prost(message, optional, tag = "1")]
    pub start_time: ::core::option::Option<Timestamp>,
    #[prost(message, optional, tag = "2")]
    pub end_time: ::core::option::Option<Timestamp>,
    #[prost(string, tag = "3")]
    pub description: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub hostname: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub username: ::prost::alloc::string::String,
    #[prost(bool, tag = "7")]
    pub is_snapshot: bool,
    #[prost(map = "string, string", tag = "6")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RemoteRefState {
    New = 0,
    Tracking = 1,
}
impl RemoteRefState {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            RemoteRefState::New => "New",
            RemoteRefState::Tracking => "Tracking",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "New" => Some(Self::New),
            "Tracking" => Some(Self::Tracking),
            _ => None,
        }
    }
}