v1.4.0
Added
- Multi-target file tracking: Same file can now be tracked from different repositories or to different target directories without conflicts
- Enhanced conflict detection: Intelligent conflict detection only prevents duplicates when repository, file path, and target directory are all identical
- Remove command: New
git fetch-file remove <path> [<target_dir>]
command to remove tracked files from the manifest - Force flag for add command: Added
--force
flag toadd
command for intentionally overwriting existing entries - Repository disambiguation:
--repository
flag for remove command to disambiguate entries from different repositories
Changed
- BREAKING: Manifest format simplification: All manifest sections now use unified format
[file "path" from "repository_url"]
for clarity and consistency - Eliminated redundant repository keys: Repository information is now stored only in section names, eliminating duplicate
repository
keys in manifest entries - Simplified codebase: Removed unnecessary helper functions, making the code more maintainable
- Git-style error messages: Conflict errors now use concise, git-like format:
fatal: 'file' already tracked from <repo>
with helpful hints - Backward compatibility: Old manifest formats are still supported and automatically migrated
Fixed
- Issue #5: Cannot add same filename from two different repos: Resolved conflict detection that incorrectly prevented tracking same filename from different repositories or to different target directories
Improved
- Conflict resolution guidance: Error messages now provide clear options: use
--force
to overwrite, or specify different target directory - Status output clarity: Status command shows multiple entries when same file is tracked to different locations
- Documentation coverage: Comprehensive README.md updates with conflict handling examples and new command documentation
Full Changelog: v1.3.0...v1.4.0