Skip to content

Commit 90a10ee

Browse files
committed
fix!: Replace References with Labels for now
1 parent fdfdd55 commit 90a10ee

File tree

9 files changed

+25
-114
lines changed

9 files changed

+25
-114
lines changed

schema.json

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
],
8282
"properties": {
8383
"reset": {
84-
"$ref": "#/definitions/Reference"
84+
"type": "string"
8585
}
8686
},
8787
"additionalProperties": false
@@ -136,46 +136,6 @@
136136
}
137137
]
138138
},
139-
"Reference": {
140-
"oneOf": [
141-
{
142-
"type": "object",
143-
"required": [
144-
"branch"
145-
],
146-
"properties": {
147-
"branch": {
148-
"type": "string"
149-
}
150-
},
151-
"additionalProperties": false
152-
},
153-
{
154-
"type": "object",
155-
"required": [
156-
"tag"
157-
],
158-
"properties": {
159-
"tag": {
160-
"type": "string"
161-
}
162-
},
163-
"additionalProperties": false
164-
},
165-
{
166-
"type": "object",
167-
"required": [
168-
"label"
169-
],
170-
"properties": {
171-
"label": {
172-
"type": "string"
173-
}
174-
},
175-
"additionalProperties": false
176-
}
177-
]
178-
},
179139
"Tree": {
180140
"type": "object",
181141
"required": [
@@ -229,7 +189,7 @@
229189
"base": {
230190
"type": "array",
231191
"items": {
232-
"$ref": "#/definitions/Reference"
192+
"type": "string"
233193
}
234194
},
235195
"message": {

src/lib.rs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,11 @@ impl TodoList {
8383
let commit = current_oid(cwd)?;
8484
labels.insert(label.clone(), commit);
8585
}
86-
Command::Reset(reference) => {
87-
let revspec = match &reference {
88-
Reference::Label(label) => labels
89-
.get(label.as_str())
90-
.ok_or_else(|| eyre::eyre!("Reference doesn't exist: {:?}", label))?
91-
.as_str(),
92-
Reference::Tag(tag) => tag.as_str(),
93-
Reference::Branch(branch) => branch.as_str(),
94-
};
86+
Command::Reset(label) => {
87+
let revspec = labels
88+
.get(label.as_str())
89+
.ok_or_else(|| eyre::eyre!("Label doesn't exist: {:?}", label))?
90+
.as_str();
9591
checkout(cwd, revspec)?;
9692
}
9793
Command::Tree(tree) => {
@@ -153,14 +149,10 @@ impl TodoList {
153149
p.arg("--author").arg(author);
154150
}
155151
for base in &merge.base {
156-
let revspec = match base {
157-
Reference::Label(label) => labels
158-
.get(label.as_str())
159-
.ok_or_else(|| eyre::eyre!("Reference doesn't exist: {:?}", label))?
160-
.as_str(),
161-
Reference::Tag(tag) => tag.as_str(),
162-
Reference::Branch(branch) => branch.as_str(),
163-
};
152+
let revspec = labels
153+
.get(base.as_str())
154+
.ok_or_else(|| eyre::eyre!("Label doesn't exist: {:?}", base))?
155+
.as_str();
164156
p.arg(revspec);
165157
}
166158
p.ok()?;

src/model.rs

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ impl Default for TodoList {
4444
#[cfg_attr(feature = "serde", serde(deny_unknown_fields))]
4545
pub enum Command {
4646
Label(Label),
47-
Reset(Reference),
47+
Reset(Label),
4848
Tree(Tree),
4949
Merge(Merge),
5050
Branch(Branch),
@@ -115,42 +115,13 @@ impl<'d> From<&'d str> for FileContent {
115115
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
116116
#[cfg_attr(feature = "serde", serde(deny_unknown_fields))]
117117
pub struct Merge {
118-
pub base: Vec<Reference>,
118+
pub base: Vec<Label>,
119119
#[cfg_attr(feature = "serde", serde(default))]
120120
pub message: Option<String>,
121121
#[cfg_attr(feature = "serde", serde(default))]
122122
pub author: Option<String>,
123123
}
124124

125-
#[derive(Clone, Debug, derive_more::IsVariant)]
126-
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
127-
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
128-
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
129-
#[cfg_attr(feature = "serde", serde(deny_unknown_fields))]
130-
pub enum Reference {
131-
Branch(Branch),
132-
Tag(Tag),
133-
Label(Label),
134-
}
135-
136-
impl From<Branch> for Reference {
137-
fn from(inner: Branch) -> Self {
138-
Self::Branch(inner)
139-
}
140-
}
141-
142-
impl From<Tag> for Reference {
143-
fn from(inner: Tag) -> Self {
144-
Self::Tag(inner)
145-
}
146-
}
147-
148-
impl From<Label> for Reference {
149-
fn from(inner: Label) -> Self {
150-
Self::Label(inner)
151-
}
152-
}
153-
154125
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
155126
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
156127
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]

tests/fixtures/branches.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: base
1717
- label: base
1818

19-
- reset:
20-
label: base
19+
- reset: base
2120
- tree:
2221
tracked:
2322
"file_a.txt": "3"
@@ -36,8 +35,7 @@ commands:
3635
message: "6"
3736
- branch: off_master
3837

39-
- reset:
40-
label: base
38+
- reset: base
4139
- tree:
4240
tracked:
4341
"file_a.txt": "3"

tests/fixtures/conflict.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: base
1717
- label: base
1818

19-
- reset:
20-
label: base
19+
- reset: base
2120
- tree:
2221
tracked:
2322
"file_a.txt": "4"
@@ -28,8 +27,7 @@ commands:
2827
message: "5"
2928
- branch: master
3029

31-
- reset:
32-
label: base
30+
- reset: base
3331
- tree:
3432
tracked:
3533
"file_a.txt": "6"

tests/fixtures/git_rebase_existing.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: master
1717
- label: master
1818

19-
- reset:
20-
label: master
19+
- reset: master
2120
- tree:
2221
tracked:
2322
"file_a.txt": "3"
@@ -31,8 +30,7 @@ commands:
3130
- branch: feature2
3231

3332
# `git rebase master` caused the history to split
34-
- reset:
35-
label: master
33+
- reset: master
3634
- tree:
3735
tracked:
3836
"file_a.txt": "3"

tests/fixtures/git_rebase_new.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: master
1717
- label: master
1818

19-
- reset:
20-
label: master
19+
- reset: master
2120
- tree:
2221
tracked:
2322
"file_a.txt": "3"
@@ -32,8 +31,7 @@ commands:
3231
- branch: feature2
3332

3433
# `git rebase master` caused the history to split
35-
- reset:
36-
label: master
34+
- reset: master
3735
- tree:
3836
tracked:
3937
"file_a.txt": "3"

tests/fixtures/pr-semi-linear-merge.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: base
1717
- label: base
1818

19-
- reset:
20-
label: base
19+
- reset: base
2120
- tree:
2221
tracked:
2322
"file_a.txt": "3"
@@ -61,8 +60,7 @@ commands:
6160
message: "10"
6261
- branch: master
6362

64-
- reset:
65-
label: base
63+
- reset: base
6664
- tree:
6765
tracked:
6866
"file_a.txt": "3"

tests/fixtures/pr-squash.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ commands:
1616
- branch: base
1717
- label: base
1818

19-
- reset:
20-
label: base
19+
- reset: base
2120
- tree:
2221
tracked:
2322
"file_a.txt": "3"
@@ -43,8 +42,7 @@ commands:
4342
message: "Merged #10"
4443
- branch: master
4544

46-
- reset:
47-
label: base
45+
- reset: base
4846
- tree:
4947
tracked:
5048
"file_a.txt": "3"

0 commit comments

Comments
 (0)