|
1 | 1 | # What's New |
2 | 2 |
|
| 3 | +## Version 1.3.0 (February 2026) |
| 4 | + |
| 5 | +Snapshot export functionality - enables archiving snapshots to any storage medium. |
| 6 | + |
| 7 | +### New Features |
| 8 | + |
| 9 | +#### Snapshot Export |
| 10 | +- **Export-RefsSnapshot**: Extract snapshots to standalone files |
| 11 | + - Export snapshot data from alternate data streams to primary streams |
| 12 | + - Non-destructive operation preserving original file and snapshot |
| 13 | + - Support for exporting to any volume type (NTFS, FAT32, network shares, etc.) |
| 14 | + - Full `ShouldProcess` support with `ConfirmImpact = 'Medium'` |
| 15 | + - Pipeline support for batch export operations |
| 16 | + |
| 17 | +#### Export Options |
| 18 | +- **PreserveAttributes**: Maintain original file metadata during export |
| 19 | + - Preserves creation time from source file |
| 20 | + - Preserves last write time |
| 21 | + - Preserves last access time |
| 22 | + - Useful for maintaining accurate timestamps in archives |
| 23 | + |
| 24 | +- **Force**: Overwrite existing destination files without prompting |
| 25 | + - Bypasses confirmation prompts for automated scenarios |
| 26 | + - Enables scripted backup workflows |
| 27 | + - Compatible with pipeline operations |
| 28 | + |
| 29 | +#### Use Cases |
| 30 | +- **Archive snapshots**: Copy snapshots to external storage or network shares |
| 31 | +- **Cross-volume backup**: Transfer snapshot data to non-ReFS volumes |
| 32 | +- **Offline backup**: Create standalone backup files for archival |
| 33 | +- **Analysis**: Export snapshots for comparison or forensic analysis |
| 34 | +- **Migration**: Move snapshot data between systems |
| 35 | + |
| 36 | +### Examples |
| 37 | +- Export single snapshot to standalone file |
| 38 | +- Batch export with pipeline operations |
| 39 | +- Archive snapshots to network storage |
| 40 | +- Export with preserved file attributes |
| 41 | + |
| 42 | +### Technical Details |
| 43 | + |
| 44 | +**Implementation:** Stream-to-file extraction using .NET I/O |
| 45 | +- `Get-Content -Stream` for reading snapshot alternate data stream |
| 46 | +- `[System.IO.File]::WriteAllBytes()` for writing primary stream |
| 47 | +- Automatic directory creation for destination paths |
| 48 | +- Stream path format: `${FilePath}:${SnapshotName}` |
| 49 | + |
| 50 | +**Performance Considerations:** |
| 51 | +- Reads entire snapshot into memory before writing |
| 52 | +- Performance scales with snapshot size |
| 53 | +- Suitable for snapshots up to several GB |
| 54 | +- Network storage may impact export speed |
| 55 | + |
| 56 | +### Pipeline Integration |
| 57 | +Export integrates seamlessly with existing cmdlets: |
| 58 | +```powershell |
| 59 | +# Export all snapshots matching a pattern |
| 60 | +Get-RefsSnapshot -Path D:\Data\file.dat -Name "Daily_*" | |
| 61 | + ForEach-Object { Export-RefsSnapshot -Path $_.FilePath -Name $_.SnapshotName -Destination "\\nas\backups\$($_.SnapshotName).dat" } |
| 62 | +``` |
| 63 | + |
| 64 | +### Breaking Changes |
| 65 | + |
| 66 | +None - fully backwards compatible with v1.2.0 |
| 67 | + |
| 68 | +--- |
| 69 | + |
3 | 70 | ## Version 1.2.0 (February 2026) |
4 | 71 |
|
5 | 72 | Snapshot restore functionality release - completes the snapshot lifecycle. |
@@ -43,14 +110,16 @@ Snapshot restore functionality release - completes the snapshot lifecycle. |
43 | 110 | - Pipeline restore patterns |
44 | 111 | - Backup and recovery scenarios |
45 | 112 |
|
46 | | -### Completed Snapshot Lifecycle |
| 113 | +### Snapshot Lifecycle (as of v1.2.0) |
47 | 114 | The module now supports the complete snapshot workflow: |
48 | 115 | 1. **Create** → `New-RefsSnapshot` |
49 | 116 | 2. **List** → `Get-RefsSnapshot` |
50 | 117 | 3. **Compare** → `Compare-RefsSnapshot` |
51 | | -4. **Restore** → `Restore-RefsSnapshot` ✨ NEW |
| 118 | +4. **Restore** → `Restore-RefsSnapshot` ✨ NEW in v1.2.0 |
52 | 119 | 5. **Delete** → `Remove-RefsSnapshot` |
53 | 120 |
|
| 121 | +(Export functionality added in v1.3.0) |
| 122 | + |
54 | 123 | ### Technical Details |
55 | 124 |
|
56 | 125 | **Implementation:** Direct .NET file I/O for snapshot stream access |
@@ -214,4 +283,4 @@ This project follows [Semantic Versioning](https://semver.org/): |
214 | 283 |
|
215 | 284 | --- |
216 | 285 |
|
217 | | -*Last Updated: February 3, 2026* |
| 286 | +*Last Updated: February 10, 2026* |
0 commit comments