bgit v0.3 Post-Release Enhancements and Fixes

Open
#4 3 comments 0 reactions 1 assignee View on GitHub

@rootCircle is already working on this.

Since Jun 9, 2025.

Assessment

This issue has not been assessed yet.

Description

This issue tracks a collection of tasks aimed at improving bgit's stability, features, and user experience following the v0.3 release. These items focus on refining existing functionalities, integrating new capabilities, and addressing identified shortcomings.

Remaining Tasks:

  1. Wrap Enum inside Option types for operation modes in event:

    • Review existing Enum usage and refactor instances where Option would provide clearer semantics and better error handling.
  2. Integrate and Utilize Rules:

    • Implement and actively use the defined rules throughout bgit's workflows to enforce best practices and ensure consistent behavior.
  3. Comprehensive Test Coverage:

    • Develop and implement a robust suite of tests to ensure the reliability and correctness of all modules and workflows. This is a critical ongoing task.
  4. Refactor Logging from println! to debug!():

    • Replace all direct println! statements within event handlers with debug!() or other appropriate logging macros for more granular control over log verbosity and better integration with the logging framework.
  5. Graceful Handling of None Defaults:

    • Review code for instances where None values are expected or possible, and implement graceful defaults or error handling instead of direct panics or errors.
  6. git push Force Options: [SUPER HIGH PRIORITY]

    • Investigate and implement support for git push --force-with-lease to provide a safer alternative to git push --force.
    • Completely remove git push --force
    • done in #5
  7. ta03_pop_stash - Supporting Other Indices:

    • (Future consideration) Extend the ta03_pop_stash functionality to support popping stashes from specific indices, rather than just the most recent one.
  8. Fixing Credentials in Git Push/Pull: [SUPER HIGH PRIORITY]

    • Address issues related to credential handling during git push and git pull operations, particularly concerning VSCode, SSH hiccups, and HTTPS authentication with GitHub rules.
  9. git clone Behavior with .git Folder:

  • Investigate and fix the issue where cloning a repository (e.g., linux.git) results in the creation of a directory that retains the .git suffix (e.g., linux.git instead of linux). The cloned repository should be placed in a directory without the .git suffix by default, mirroring standard Git behavior. fixed in #8
  1. Fix git_clone Event for Shallow Clones: [PRIORITY]

    • Ensure the git_clone event correctly handles and executes shallow clones when requested.
  2. Merge Conflict and Branch Update Rule Implementation:

    • Develop and implement rules specifically for detecting merge conflicts before add/commit and ensuring branch is up to date before pushing procedures.
  3. Refine raw_execute Signature:

    • Update the raw_execute function signature to fn raw_execute<T>(&self) -> Result<(bool, T), Box<BGitError>> to fix the leaky abstraction.
  4. Stacked Diffs Support:

    • Explore and implement support for working with stacked diffs in bgit, which can enhance code review and development workflows.
  5. Remove git usage from Command:

    • Remove external git binary dependency in rules wherever possible. (eg: in no_secrets_staged)
  6. Gitattributes based on file type being added and CRLF(EOL) defaults (detection and assignment)

Dominant language
Rust
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.