- Added experimental homebrew tap
- PR: #263
- Removed reflink from default features
- Hide directories in xvc file list output by default and add --show-dirs option
- Set core.quotepath=off in git ls-files call to get paths in UTF-8 to match
- Handle missing files in xvc file bring more gracefully
- Fixed git version string to also consider lightweight tags
- Fixed xvc file remove bug that panics when content digests not found
- Fixed xvc file list help text and added a test/example for ignored files
- Added more targets to Github builds
- Releases now use houseabsolute/actions-rust-cross@v0
- PR: #262
- Add --include-git-files option to xvc file track and xvc file list commands
- Don't track and list Git-tracked files by default
- Add ListFormat::empty for default xvc file list format
- Expose types from
xvc::file::list
to be used in GUI - Refactor
xvc file list
command handler for Xvc GUI - Began to use dtolnay/rust-toolchain for Github Actions
- Began to use taiki-e/install-action@cargo-llvm-cov for codecov
- Fixed cache permissions issue
- PR: #260
- Bump dependencies
- Replace globset with fast-glob for memory usage
- Remove --details option from xvc check-ignore
- Fixed xvc check-ignore to work with supplied paths
- Fixed loading store targets from xvc file list
- Directory targets in various commands doesn't require / at the end when they only exist in the cache
- Removed some duplicate tests from ignore
- Minio tests now use mc instead of s3cmd
- Add a step to run a subset of tests in CI for faster feedback
- PR: #259
- Removed caching for globs that caused bugs in Python bindings and long running processes.
- Documentation updates
- Fix optional features. Now inter-workspace dependencies are defined by
default-features = false
on Cargo.toml - Added
bundled-openssl
feature to usevendored
feature ofopenssl
crate optionally. This is turned on for Windows builds on GA. - Crates are published from Github Actions
- Added sqlite-query dependency to xvc pipelines. A step is invalidated to run when the output from an SQLite query changes.
- Moved bundled sqlite behind a feature flag, bundled_sqlite.
- Merged xvc-workflow-tests crate to the main xvc crate.
- Added compiling Xvc with non-default features document
- Modifications for Python bindings
- Added
xvc file share
command to share files from S3 signed URLs
- Added
xvc pipeline step remove
command - Added
to
andfor
as aliases to--step-name
option inxvc pipeline step dependency
- Added custom Display implementation for dependency types
-
Add benchmarks between Xvc and DVC
- Add how-to/benchmark-versus-dvc.md
- Add regex filtering for how-to documents to trycmd test docs
-
Refactored Pipelines API to expose more functionality
- PR: #243
- Exposed Git operations in the API
-
Fixed
xvc pipeline step update
clobbering--when
option -
Added
xvc pipeline step list
command to list pipeline steps -
Updated file related operations not to list all files
- Added
XvcPathMetadataProvider
toxvc-walker
to cache file system metadata
- Added
-
Added git revision to the version stringZ
-
xvc file list
doesn't list files starting with.
now.- Added
--show-dot-files
to list them.
- Added
-
Fixed
--recheck-method
to be reset to default if not specified
- Updated README and added its commands to the tests
- Updated openssl dependency to use vendored feature for Python bindings
- Fixed clippy warnings
- Initial Python bindings in https://github.com/iesahin/xvc.py
- Updated
xvc file track
reference and examples - Added mdbook-admonish for admonitions
- Fixed
--skip-git
option not working correctly- Added documentation for turning off automated Git operations
- PR: #238
- Updated Readme and added it to tests
- Added --min-size (-s) option to xvc-test-helper create-directory-tree
- PR: #229
- Updated
xvc pipeline dag
and reference docs.- PR: #232
- Dependency and outputs are shown with different shapes according to their types in Graphviz format
- Simplify DAG creation for both dot and mermaid formats
-
Major overhaul in pipelines
- PR: #224
- Added
--generic
,--url
,--regex-items
,--line-items
,--glob-items
dependencies - as dependency types to
xvc pipeline step dependency
command - Updated
xvc pipelines
to run the pipeline by creating a thread for each step. - Updated pipelines state machine
- Added environment variable injection to
--regex-items
,--line-items
and--glob-items
dependencies. - Reference examples for
xvc pipeline export
andxvc pipeline import
- Refactored
xvc-core
crate for digest structures - Refactored
xvc-pipelines
create to move dependencies to files
-
Added reference examples for
xvc storage new ...
commands. -
Add
xvc pipeline new
reference examples.- Remove
--set-default
option from the command.
- Remove
-
Added reference examples for
xvc storage new ...
commands. -
Add
--format mermaid
toxvc pipeline dag
-
Standardize digests with AttributeDigest trait
-
Add Diffable trait to compare records and actuals
-
Refactor
xvc pipeline
comparisons to use Diff
- Refactor "cache type" to "recheck method" in all code and documentation
- Issue: #203
- Renamed
CacheType
toRecheckMethod
- Revised documentation for recheck methods
- Add
xvc file untrack
command.- Issue: #113
- Write the reference page: book/src/ref/xvc-file-untrack.md
- I believe there must be two separate commands:
xvc file untrack
andxvc file remove
. The former is to remove the file from Xvc tracking, and the latter is to remove the file from the workspace, cache, or storages. There are valid use cases to remove the file from cache without untracking it, and vice versa. - There will also be a
xvc file versions
command to list the versions of a file and restore them to a directory. - I think it's better to implement remove and untrack commands in one go.
- Added
join
to AbsolutePath.- Assert the parameter is not absolute.
- Caused error in xvc init: Fixed ✅
- Caused error in updating gitignores: Fixed ✅
- Assert the parameter is not absolute.
- Error in recheck for existing paths: Fixed ✅
- XvcCachePath returns a partial path for reporting
- Change all PathBuf elements in XvcRoot to AbsolutePath
- Sort results of
--restore-versions
by entity id ✅ - Delete cache files
- Remove empty directories after untracking ✅
- I believe there must be two separate commands:
- Update book/src/start/from-dvc.md for
xvc file untrack
✅
- Restructure output channel to send/receive
Option<XvcOutputLine>
instead ofXvcOutputLine
- Refactor all commands to use the new output channel ✅
- Add
xvc file remove
command- Add RemoveCLI and the command dispatcher ✅
- Implemented remove for local cache
- Implement
--all-versions
- Implement
--only-version
- Implement
- Implement
--from-remote
- Implement
XvcStorageOperations::delete
for all storage types
- Update
xvc-test-helper generate-random-file
andcreate-directory-tree
to receive random seed - Update
xvc storage new local
ref page to include examples
- Fix Build Badge in Readme
- Fixed per badges/shields#8671
- Revised Readme and added Future and Maintanence section.
- Fix EntityGenerator bug that saves even if no new entity is created
- Issue: #185
- Added test_multi_save
- Added a dirty flag to EntityGenerator
- Separated load and new behavior
- New makes the generator dirty. Load doesn't.
- Add
xvc file move
command.- Issue: #177
- Write the reference page: book/src/ref/xvc-file-move.md
- Add
move
toXvcFileCLI
- Add MoveCLI
- Refactor and split cmd_copy
- A function to get source files
- A function to map source files to destination files
- A function to perform copy operations
- A function to recheck
- Write cmd_move
- Wrote modified functions of operations and destination mapping from cmd_copy
- Other functions from cmd_copy are reused
- Add template for xvc-file-move.in
- Fixed a bug in
xvc file copy
about changed source files. xvc file move --no-recheck
deletes the source files.
- Added Giscus to the documentation
- PR: #215
- All docs pages can be commented with Giscus.
- Refactor XvcEntity to
(u64, u64)
- Issue: #198
- PR: https://github.com/iesahin/xvc/pulls/201
From<u128>
andInto<u128>
From<(u64, u64)>
andInto<(u64, u64)>
- Tests
- Add tests for
From<u128>
andInto<u128>
ecs/src/ecs/mod.rs - Fix doc tests that use
100usize
to createXvcEntity
- Add tests for
- Update the ECS documentation
- Update arch/ecs.md
- Search for any
XvcEntity
references that may be changed
xvc-test-helper
binary is not produced at builds- Moved it from dev-dependencies to dependencies in workflow_tests/Cargo.toml
- Still doesn't work 🛑
- We need binary dependencies in cargo: https://rust-lang.github.io/rfcs/3028-cargo-binary-dependencies.html,
- It's available in nightly: rust-lang/cargo#9096
- Revert to dev-dependencies
z_test_docs
fails immediately if noxvc-test-helper
binary is found.- Run the tests without
-p workflow_tests
- Hypothesis: The reason the test helper binary is not produced is that we run only
workflow_tests
crate. - Looks this hypothesis is not correct.
- Hypothesis: The reason the test helper binary is not produced is that we run only
- The best way seems to be adding
https://docs.rs/escargot/latest/escargot/ and building the binary before
the doc tests.
- Now builds the binary before running the doc tests. ✅
- Moved it from dev-dependencies to dependencies in workflow_tests/Cargo.toml
- Write pipelines code documentation #88
- Add
xvc file copy
command- Issue: #179
- PR: #206
- Create the user interface
- Add
copy
toXvcFileCLI
- Created CopyCLI
- Add
- Write the documentation and doc tests:
- Write initial examples: book/src/ref/xvc-file-copy.md
- Create a fixture directory
xvc-file-copy.in
- Implement the command
- Select source
- Select destination
- Do we store directories with trailing / or not❓
- Write tests for consistency
- Added
test_xvc_path_naming
proptests and modified XvcPath constructor to accept absolute paths conditionally. ✅
- Added
- We don't store directories with trailing / ℹ️
- Write tests for consistency
- Create destination XvcPaths ✅
- Add join function to XvcPath ✅
- Create destination cache type, metadata, digest, text-or-binary ✅
- Should we create destination directory records❓
- It's better to create them to update gitignore files. ✅
- Update gitignore files in destinations
- Use update_dir_gitignore for new directories and update_file_gitignore for new files.
- Move gitignore functions from track/mod.rs to common/gitignore.rs
- Gitignore handling is actually a recheck sub-operation.
- Git doesn't mind if we don't create anything in the workspace.
- We should update gitignores in recheck, but how can we do that for directories that may contain non-tracked files❓
- While creating files and parent directories we can update gitignores
in the parent directories.
- If a directory is not already ignored in creation, we can create a gitignore with a single line
*
to ignore all files. - After all files are rechecked, we can check whether they are not ignored by Git, and update necessary gitignores.
- If a directory is not already ignored in creation, we can create a gitignore with a single line
- Gitignore handling is actually a recheck sub-operation.
- Create an IgnoreWriter system with crossbeam_channels
- The channel will send/receive
Option<IgnoreOperation>
messages. - If it receives a None message, it will stop and the collected dir/files will be written to ignore files.
- This pattern can be used for all operations.
- The channel will send/receive
- Split targets_from_store to receive a store struct to filter. ✅
- This is to prevent unnecessary reload in copy.
- Convert former XvcRoot type to XvcRootInner and XvcRoot to
Arc<XvcRootInner>
- This is to pass the object to threads easily.
- Do we store directories with trailing / or not❓
- Updated default format string for
xvc file list
- Moved
name
block to the end of the format string ✅
- Moved
xvc file carry-in
#174- PR #194
xvc file list
debugging #197- Fixed slicing bug ✅
- Recursive option
- If not given all files including the ignored files will be reported.
- Ignored files will be reported with file type
I
- Ignored files will be reported with file type
- If not given all files including the ignored files will be reported.
- Add
G
for as a file type for git-tracked files. DX 224 2022-12-31 08:21:11 dir-0001/dir-0001 rcd \n
- Fix
rcd
✅
- Fix
- Count lines in the result
- I think it's better to write all of this as a doc test
- PR #194
- create a
xvc-test-helper create-directory-hierarchy
command.- Add a main.rs to xvc-test-helper ✅
- Add clap to parse CLI
- Add subcommands ✅
- create directory tree
- random dir name --prefix str --seed u64
- random temp dir --prefix str
- seeded temp dir --seed u64
- create temp dir
- run in temp dir
- run in temp git dir
- create temp git dir
- generate random file filename size
- generate filled file filename size byte
- generate random text file filename num_lines
- Add to doc-tests
- added with
cargo_bin!
✅ - began to add
xvc-file-list.md
- Open doc test results in a directory
- Use neovim for this
- Open doc test results in a directory
- It looks we need to update directory permissions in the cache too
- updated move_to_cache function
- fix recheck errors
- it looks recheck doesn't check whether the file is changed before trying to checkout
- do we use
--text-or-binary
option to update the file?- removed the option from help text ✅
- I think we need a
DEBUG
level in XvcOutput for otherwise irrelevant information- Added debug option to XvcOutputLine
- Changed all noisy output to debug! ✅
- fix
carry-in
errors- updated outputs
- there seems to be a bug to update the stores
- add watches for several places.
- the bug was about missing configuration keys.
- it must warn/panic when the keys are not there.
- all machinery is there, it must report error, but doesn't.
- it must warn/panic when the keys are not there.
- there seems to be a bug in xvc list output about cached/workspace sizes
- yes, there was. fixed the summary. ✅
- added with
- started moving
test_file_list.rs
to document test.--recheck-as
option must be introduced instead of--cache-type
.- there is a bug in
track
when--cache-type
is given. 🐛- pmm doesn't contain directory contents
- fixed ✅
- pmm doesn't contain directory contents
- the sorting for timestamp and size are not working
- fixed ✅
- if a field is blank or None, it should print spaces.
- Done for size and timestamp ✅
- Why the cache size is empty when they are not reported
- Fixed. Loads the rec content digests always now. ✅
- We need more tests for other sorting options to increase coverage perhaps.
- removed older tests and added only the sorting test to xvc file list wf tests
- tests in ref md is larger than this file anyway.
- Listing only the changed.
- As a status command.
- Add subcommands ✅
- Fix
xvc file hash
tests- create directory tree needs an option to create random files or filled files
- update all uses ✅
- modify test helper to have this option ✅
- create directory tree needs an option to create random files or filled files
- Fix
xvc file list
tests- Fix counting and sorting tests ✅
- Could we have file, line, function etc in panic! / error! macros?
- Modified and did this ✅
- Fix
xvc file recheck parallel
tests- There is a failing command, which one?
- It looks like a plain recheck after hardlink
- The target permissions should be removed
- The bug seems to be in
xvc file track
- There is a gitignore bug
- Fixed it by using the targets directly
- There is a gitignore bug
- The failure is in cleanup, about permissions.
- Delete files and directories one by one
- Deleted by shell ✅
- Delete files and directories one by one
- There is a failing command, which one?
- Fix
xvc root
--debug
should only determine the xvc.log output- changed output in
run_xvc
fn ✅
- changed output in
- Fix
xvc pipeline export
tests- There must be sorting in the output, as we changed the stores to HStore ✅
- Fix
xvc pipeline import
tests- The same changes, ordering of elements changed ✅
- Fix
xvc pipeline run
tests- The example repository again and again ✅
- Fix
xvc storage generic fs
tests- Where is the actual error?
- It was about removing the repos
- Where is the actual error?
- Fix
xvc storage local
tests ✅- Cache operations from storages should be done on temp dir and move to cache must be used for all
- This is to keep permission operations correct
- I did this in the trait ✅
- Modified all receive functions to return a temp dir ✅
- Cache operations from storages should be done on temp dir and move to cache must be used for all