github GitoxideLabs/gitoxide gitoxide-core-v0.64.0
gitoxide-core v0.64.0

latest releases: v0.61.0, gix-tix-v0.6.0
6 hours ago

Bug Fixes

  • skip occupied repository destinations during organization
    While this is now very well tested, it's something to keep to be sure this
    doesn't stop working correctly, after all it deals with user data and that
    better won't mess anything up.

    ein t organize --execute attempted to rename every discovered repository
    to a path derived from its origin URL, even when another path already
    occupied that destination. Several local checkouts sharing an origin
    therefore produced a batch of Directory not empty errors. The generic
    "handling" context did not explain that a repository move had failed or
    identify its destination.

    Treat an occupied destination as an informational skip in execution and
    simulation modes. Preserve files, directories (including empty ones), and
    dangling symlinks rather than replacing them. Already organized repositories
    remain a successful no-op. Keep confinement validation ahead of the skip,
    and retain inspection failures instead of silently treating them as absence.
    A skip reports the source and resolved destination, for example:

    Skipping repository "./github.com/Byron/jwalk-mine": destination ".../github.com/byron/jwalk-mine" already exists
    

    Name the actual operations in errors: reading the origin, expanding its
    path, resolving or inspecting the destination, creating directories,
    staging a relocation, and moving the repository. Move failures carry
    source and destination path metadata. Use "organize" rather than
    "handle" for the enclosing repository context and aggregate.

    The temporary relocation path also needed to preserve the repository on
    failure. When moving into a subdirectory of itself, the first rename put
    the only repository copy inside an automatically cleaned temporary
    directory. A later failure could delete that copy. Disable cleanup after
    the first rename, retain and report the recovery path on failure, and
    restore cleanup after the final rename succeeds. Keep the existing move
    algorithm in a private helper so deterministic failure tests can exercise
    this sequence without changing production APIs.

    Replace the occupied-destination error fixture with skip tests that
    inspect progress messages and preserve both paths. Cover directories,
    empty directories, files, dangling symlinks, repeated organization,
    blocked parents, successful nested moves, and temporary-copy retention
    when nested destination creation fails. Reuse the existing progress tree
    through a dev-only feature to capture messages. Document the behavior in
    CLI help and the public operation docs.

Commit Statistics

  • 5 commits contributed to the release over the course of 14 calendar days.
  • 14 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Merge pull request #3064 from GitoxideLabs/various-improvements (8c513c5)
    • Skip occupied repository destinations during organization (2ff66e2)
    • Merge pull request #3066 from GitoxideLabs/check-commit-graph (7540f69)
    • Merge pull request #3037 from ameyypawar/gix-remote-default-branch (ad0202e)
    • Merge pull request #3048 from GitoxideLabs/new-release (5fccccf)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.