@@ -223,7 +223,7 @@ public ITfsChangeset GetShelvesetData(IGitTfsRemote remote, string shelvesetOwne
223
223
var wrapperForVersionControlServer =
224
224
_bridge . Wrap < WrapperForVersionControlServer , VersionControlServer > ( VersionControl ) ;
225
225
// TODO - containerify this (no `new`)!
226
- var fakeChangeset = new FakeChangeset ( shelveset , change , wrapperForVersionControlServer , _bridge ) ;
226
+ var fakeChangeset = new Unshelveable ( shelveset , change , wrapperForVersionControlServer , _bridge ) ;
227
227
var tfsChangeset = new TfsChangeset ( remote . Tfs , fakeChangeset , _stdout , null ) { Summary = new TfsChangesetInfo { Remote = remote } } ;
228
228
return tfsChangeset ;
229
229
}
@@ -298,21 +298,21 @@ private void WriteShelvesetsToStdoutDetailed(IEnumerable<Shelveset> shelvesets)
298
298
299
299
#region Fake classes for unshelve
300
300
301
- private class FakeChangeset : IChangeset
301
+ private class Unshelveable : IChangeset
302
302
{
303
303
private readonly Shelveset _shelveset ;
304
304
private readonly PendingSet _pendingSet ;
305
305
private readonly IVersionControlServer _versionControlServer ;
306
306
private readonly TfsApiBridge _bridge ;
307
307
private readonly IChange [ ] _changes ;
308
308
309
- public FakeChangeset ( Shelveset shelveset , PendingSet pendingSet , IVersionControlServer versionControlServer , TfsApiBridge bridge )
309
+ public Unshelveable ( Shelveset shelveset , PendingSet pendingSet , IVersionControlServer versionControlServer , TfsApiBridge bridge )
310
310
{
311
311
_shelveset = shelveset ;
312
312
_versionControlServer = versionControlServer ;
313
313
_bridge = bridge ;
314
314
_pendingSet = pendingSet ;
315
- _changes = _pendingSet . PendingChanges . Select ( x => new FakeChange ( x , _bridge , versionControlServer ) ) . Cast < IChange > ( ) . ToArray ( ) ;
315
+ _changes = _pendingSet . PendingChanges . Select ( x => new UnshelveChange ( x , _bridge , versionControlServer ) ) . Cast < IChange > ( ) . ToArray ( ) ;
316
316
}
317
317
318
318
public IChange [ ] Changes
@@ -344,19 +344,28 @@ public IVersionControlServer VersionControlServer
344
344
{
345
345
get { return _versionControlServer ; }
346
346
}
347
+
348
+ public void Get ( IWorkspace workspace )
349
+ {
350
+ foreach ( var change in _changes )
351
+ {
352
+ var item = ( UnshelveItem ) change . Item ;
353
+ item . Get ( workspace ) ;
354
+ }
355
+ }
347
356
}
348
357
349
- private class FakeChange : IChange
358
+ private class UnshelveChange : IChange
350
359
{
351
360
private readonly PendingChange _pendingChange ;
352
361
private readonly TfsApiBridge _bridge ;
353
- private readonly FakeItem _fakeItem ;
362
+ private readonly UnshelveItem _fakeItem ;
354
363
355
- public FakeChange ( PendingChange pendingChange , TfsApiBridge bridge , IVersionControlServer versionControlServer )
364
+ public UnshelveChange ( PendingChange pendingChange , TfsApiBridge bridge , IVersionControlServer versionControlServer )
356
365
{
357
366
_pendingChange = pendingChange ;
358
367
_bridge = bridge ;
359
- _fakeItem = new FakeItem ( _pendingChange , _bridge , versionControlServer ) ;
368
+ _fakeItem = new UnshelveItem ( _pendingChange , _bridge , versionControlServer ) ;
360
369
}
361
370
362
371
public TfsChangeType ChangeType
@@ -370,14 +379,14 @@ public IItem Item
370
379
}
371
380
}
372
381
373
- private class FakeItem : IItem
382
+ private class UnshelveItem : IItem
374
383
{
375
384
private readonly PendingChange _pendingChange ;
376
385
private readonly TfsApiBridge _bridge ;
377
386
private readonly IVersionControlServer _versionControlServer ;
378
387
private long _contentLength = - 1 ;
379
388
380
- public FakeItem ( PendingChange pendingChange , TfsApiBridge bridge , IVersionControlServer versionControlServer )
389
+ public UnshelveItem ( PendingChange pendingChange , TfsApiBridge bridge , IVersionControlServer versionControlServer )
381
390
{
382
391
_pendingChange = pendingChange ;
383
392
_bridge = bridge ;
@@ -445,6 +454,12 @@ public TemporaryFile DownloadFile()
445
454
_contentLength = new FileInfo ( temp ) . Length ;
446
455
return temp ;
447
456
}
457
+
458
+ public void Get ( IWorkspace workspace )
459
+ {
460
+ _pendingChange . DownloadShelvedFile ( workspace . GetLocalItemForServerItem ( _pendingChange . ServerItem ) ) ;
461
+ }
462
+
448
463
}
449
464
450
465
#endregion
0 commit comments