60% code coverage by tests
Corrected 3-way-merge mode dates
Corrected 3wm mode default dates: use onlyNewReleases mode since 01.12.2019, enabled mode — since 15.12.2019.
Git work tree switch strikes back: rework and speedup git work tree cache
- One work tree belongs only to one git repo on localhost.
Multiple repos (as in gitlab with parallel builds) will
have multiple uniq work trees, one per repo.
- Optimized work tree switch procedure in the case when
work tree is already in the desired commit state.
- New cache files structure:
~/.werf/local_cache/git_worktrees/2/local/REPO_ID_HASH/ worktree # actual work tree directory in the state corresponding to some commit current_commit # file contains commit hash corresponding to the worktree state git_dir # path to the git dir to which this work tree belongs
REPO_ID is unique per each local repo clone.
During switch from OLD_COMMIT to NEW_COMMIT procedure
~/.werf/local_cache/git_worktrees/3/local/REPO_ID_HASH/current_commit file will be removed,
then worktree state will be switched in the dir ~/.werf/local_cache/git_worktrees/3/local/REPO_ID_HASH/worktree,
then ~/.werf/local_cache/git_worktrees/3/local/REPO_ID_HASH/current_commit will be created with the NEW_COMMIT hash.
Only a single process can work with ~/.werf/local_cache/git_worktrees/3/local/REPO_ID_HASH cache at the same time.
Synchronize trackers statuses when Added, Failed or Ready signals received: should fix incorrect status table indicators.