@@ -34,19 +34,22 @@ public void CanAddAndRemoveStash()
34
34
Stash stash = repo . Stashes . Add ( stasher , "My very first stash" , StashModifiers . IncludeUntracked ) ;
35
35
36
36
// Check that untracked files are deleted from working directory
37
- Assert . False ( File . Exists ( Path . Combine ( repo . Info . WorkingDirectory , "new_untracked_file.txt" ) ) ) ;
37
+ string untrackedFilename = "new_untracked_file.txt" ;
38
+ Assert . False ( File . Exists ( Path . Combine ( repo . Info . WorkingDirectory , untrackedFilename ) ) ) ;
39
+ Assert . NotNull ( stash . Untracked [ untrackedFilename ] ) ;
38
40
39
41
Assert . NotNull ( stash ) ;
40
42
Assert . Equal ( "stash@{0}" , stash . CanonicalName ) ;
41
43
Assert . Contains ( "My very first stash" , stash . Message ) ;
42
44
43
45
var stashRef = repo . Refs [ "refs/stash" ] ;
44
- Assert . Equal ( stash . Target . Sha , stashRef . TargetIdentifier ) ;
46
+ Assert . Equal ( stash . WorkTree . Sha , stashRef . TargetIdentifier ) ;
45
47
46
48
Assert . False ( repo . Index . RetrieveStatus ( ) . IsDirty ) ;
47
49
48
50
// Create extra file
49
- Touch ( repo . Info . WorkingDirectory , "stash_candidate.txt" , "Oh, I'm going to be stashed!\n " ) ;
51
+ untrackedFilename = "stash_candidate.txt" ;
52
+ Touch ( repo . Info . WorkingDirectory , untrackedFilename , "Oh, I'm going to be stashed!\n " ) ;
50
53
51
54
Stash secondStash = repo . Stashes . Add ( stasher , "My second stash" , StashModifiers . IncludeUntracked ) ;
52
55
@@ -58,20 +61,22 @@ public void CanAddAndRemoveStash()
58
61
Assert . Equal ( "stash@{0}" , repo . Stashes . First ( ) . CanonicalName ) ;
59
62
Assert . Equal ( "stash@{1}" , repo . Stashes . Last ( ) . CanonicalName ) ;
60
63
64
+ Assert . NotNull ( secondStash . Untracked [ untrackedFilename ] ) ;
65
+
61
66
// Stash history has been shifted
62
- Assert . Equal ( repo . Lookup < Commit > ( "stash@{0}" ) . Sha , secondStash . Target . Sha ) ;
63
- Assert . Equal ( repo . Lookup < Commit > ( "stash@{1}" ) . Sha , stash . Target . Sha ) ;
67
+ Assert . Equal ( repo . Lookup < Commit > ( "stash@{0}" ) . Sha , secondStash . WorkTree . Sha ) ;
68
+ Assert . Equal ( repo . Lookup < Commit > ( "stash@{1}" ) . Sha , stash . WorkTree . Sha ) ;
64
69
65
70
//Remove one stash
66
71
repo . Stashes . Remove ( 0 ) ;
67
72
Assert . Equal ( 1 , repo . Stashes . Count ( ) ) ;
68
73
Stash newTopStash = repo . Stashes . First ( ) ;
69
74
Assert . Equal ( "stash@{0}" , newTopStash . CanonicalName ) ;
70
- Assert . Equal ( stash . Target . Sha , newTopStash . Target . Sha ) ;
75
+ Assert . Equal ( stash . WorkTree . Sha , newTopStash . WorkTree . Sha ) ;
71
76
72
77
// Stash history has been shifted
73
- Assert . Equal ( stash . Target . Sha , repo . Lookup < Commit > ( "stash" ) . Sha ) ;
74
- Assert . Equal ( stash . Target . Sha , repo . Lookup < Commit > ( "stash@{0}" ) . Sha ) ;
78
+ Assert . Equal ( stash . WorkTree . Sha , repo . Lookup < Commit > ( "stash" ) . Sha ) ;
79
+ Assert . Equal ( stash . WorkTree . Sha , repo . Lookup < Commit > ( "stash@{0}" ) . Sha ) ;
75
80
}
76
81
}
77
82
@@ -87,10 +92,10 @@ public void AddingAStashWithNoMessageGeneratesADefaultOne()
87
92
88
93
Assert . NotNull ( stash ) ;
89
94
Assert . Equal ( "stash@{0}" , stash . CanonicalName ) ;
90
- Assert . NotEmpty ( stash . Target . Message ) ;
95
+ Assert . NotEmpty ( stash . WorkTree . Message ) ;
91
96
92
97
var stashRef = repo . Refs [ "refs/stash" ] ;
93
- Assert . Equal ( stash . Target . Sha , stashRef . TargetIdentifier ) ;
98
+ Assert . Equal ( stash . WorkTree . Sha , stashRef . TargetIdentifier ) ;
94
99
}
95
100
}
96
101
@@ -142,9 +147,11 @@ public void CanStashWithoutOptions()
142
147
143
148
//It should not keep staged files
144
149
Assert . Equal ( FileStatus . Nonexistent , repo . Index . RetrieveStatus ( staged ) ) ;
150
+ Assert . NotNull ( stash . Index [ staged ] ) ;
145
151
146
152
//It should leave untracked files untracked
147
153
Assert . Equal ( FileStatus . Untracked , repo . Index . RetrieveStatus ( untracked ) ) ;
154
+ Assert . Null ( stash . Untracked ) ;
148
155
}
149
156
}
150
157
@@ -160,10 +167,12 @@ public void CanStashAndKeepIndex()
160
167
Touch ( repo . Info . WorkingDirectory , filename , "I'm staged\n " ) ;
161
168
repo . Index . Stage ( filename ) ;
162
169
163
- Stash stash = repo . Stashes . Add ( stasher , "This stash wil keep index" , StashModifiers . KeepIndex ) ;
170
+ Stash stash = repo . Stashes . Add ( stasher , "This stash will keep index" , StashModifiers . KeepIndex ) ;
164
171
165
172
Assert . NotNull ( stash ) ;
173
+ Assert . NotNull ( stash . Index [ filename ] ) ;
166
174
Assert . Equal ( FileStatus . Added , repo . Index . RetrieveStatus ( filename ) ) ;
175
+ Assert . Null ( stash . Untracked ) ;
167
176
}
168
177
}
169
178
@@ -180,18 +189,19 @@ public void CanStashIgnoredFiles()
180
189
repo . Index . Stage ( gitIgnore ) ;
181
190
repo . Commit ( "Modify gitignore" , Constants . Signature , Constants . Signature ) ;
182
191
183
- string ignoredFilePath = Touch ( repo . Info . WorkingDirectory , ignoredFilename , "I'm ignored\n " ) ;
192
+ Touch ( repo . Info . WorkingDirectory , ignoredFilename , "I'm ignored\n " ) ;
184
193
185
194
Assert . True ( repo . Ignore . IsPathIgnored ( ignoredFilename ) ) ;
186
195
187
196
var stasher = Constants . Signature ;
188
- repo . Stashes . Add ( stasher , "This stash includes ignore files" , StashModifiers . IncludeIgnored ) ;
197
+ var stash = repo . Stashes . Add ( stasher , "This stash includes ignore files" , StashModifiers . IncludeIgnored ) ;
189
198
190
199
//TODO : below assertion doesn't pass. Bug?
191
200
//Assert.False(File.Exists(ignoredFilePath));
192
201
193
202
var blob = repo . Lookup < Blob > ( "stash^3:ignored_file.txt" ) ;
194
203
Assert . NotNull ( blob ) ;
204
+ Assert . NotNull ( stash . Untracked [ ignoredFilename ] ) ;
195
205
}
196
206
}
197
207
@@ -239,13 +249,13 @@ public void CanGetStashByIndexer()
239
249
Assert . Equal ( 3 , repo . Stashes . Count ( ) ) ;
240
250
Assert . Equal ( "stash@{0}" , repo . Stashes [ 0 ] . CanonicalName ) ;
241
251
Assert . Contains ( thirdStashMessage , repo . Stashes [ 0 ] . Message ) ;
242
- Assert . Equal ( thirdStash . Target , repo . Stashes [ 0 ] . Target ) ;
252
+ Assert . Equal ( thirdStash . WorkTree , repo . Stashes [ 0 ] . WorkTree ) ;
243
253
Assert . Equal ( "stash@{1}" , repo . Stashes [ 1 ] . CanonicalName ) ;
244
254
Assert . Contains ( secondStashMessage , repo . Stashes [ 1 ] . Message ) ;
245
- Assert . Equal ( secondStash . Target , repo . Stashes [ 1 ] . Target ) ;
255
+ Assert . Equal ( secondStash . WorkTree , repo . Stashes [ 1 ] . WorkTree ) ;
246
256
Assert . Equal ( "stash@{2}" , repo . Stashes [ 2 ] . CanonicalName ) ;
247
257
Assert . Contains ( firstStashMessage , repo . Stashes [ 2 ] . Message ) ;
248
- Assert . Equal ( firstStash . Target , repo . Stashes [ 2 ] . Target ) ;
258
+ Assert . Equal ( firstStash . WorkTree , repo . Stashes [ 2 ] . WorkTree ) ;
249
259
}
250
260
}
251
261
0 commit comments