Commits

trunk
Switch branches/tags
All users
All time
April 2026
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

Commits on April 16, 2026

  1. espadonne committed
  2. espadonne committed

Commits on March 27, 2026

Commits on March 17, 2026

Commits on March 5, 2026

  1. mfwolffe committed

Commits on January 8, 2026

  1. chore: update RPM spec to v1.1.9 with aarch64 support
    Update spec file to build version 1.1.9 which includes critical fixes:
    - WARNING log level for release builds (eliminates INFO spam)
    - Silent handling of optional TOML config fields
    - Multi-architecture support (removes x86_64 hardcoding)
    
    Fixes excessive verbosity in RPM builds on aarch64 systems.
    mfwolffe committed

Commits on January 1, 2026

  1. mfwolffe committed
  2. mfwolffe committed

Commits on December 28, 2025

  1. fix: resolve compiler warnings for clean NixOS builds
    - Change -std=c11 to -std=gnu11 to support ##__VA_ARGS__ extension
    - Add -Wp,-U_FORTIFY_SOURCE to debug builds to prevent glibc warning
    - Remove unused function remove_existing_account_sections from config.c
    espadonne committed

Commits on December 20, 2025

  1. espadonne committed
  2. feat: persistent SSH agents with session state tracking
    - Add session state tracking to prevent orphaned SSH agents
    - SSH agents now persist after gitswitch exits for use by git commands
    - Kill orphaned agents from previous runs when switching accounts
    - Create current.sock symlink for easy shell integration
    - Show shell integration tip after successful switch
    
    To use persistent SSH in your shell, add to your rc file:
      export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gitswitch-ssh/current.sock
    espadonne committed
  3. fix: use rotating buffers in display_colorize to prevent overwrite
    When display_colorize was called twice in the same printf expression,
    the single static buffer would be overwritten before printf could use
    both values. Now uses 4 rotating buffers to handle multiple calls.
    espadonne committed
  4. fix: flush stdout after display_status to ensure output is shown
    Without fflush, the final status message could be lost if the
    program exits before the output buffer is flushed.
    espadonne committed
  5. feat: improve account switch status messages
    Show detailed progress when switching accounts:
    - Account name and email being switched to
    - Git config scope (local/global) with warning if falling back
    - SSH key load status
    - SSH connection verification status (when successful)
    - GPG signing status (when enabled)
    - Clear error indicators [!!] for failures
    - Dry run mode indicators [--]
    espadonne committed
  6. fix: improve SSH connection test for git hosting services
    - Use git@github.com instead of github.com for SSH tests
    - Use ssh -T (no TTY) since git hosts don't allow shell commands
    - Check for success messages in output instead of exit code
      (GitHub returns exit 1 even on successful auth)
    - Downgrade SSH test failures to debug level since they're optional
    espadonne committed
  7. fix: remove stale ssh agent sockets before starting new agent
    Previously, if gitswitch crashed or the system rebooted, stale socket
    files would remain and prevent new ssh-agent instances from starting.
    Now checks for and removes stale sockets before starting a new agent.
    espadonne committed
  8. espadonne committed
  9. fix: use warn log level for release builds
    DEBUG builds use INFO level, release builds use WARNING level
    espadonne committed
  10. fix: silence errors for missing optional config fields
    - toml_get_string/integer/boolean return -1 silently for missing keys
    - config.c clears errors after optional field lookups for safety
    espadonne committed
  11. fix: verify git config against correct scope and suppress ssh logging
    - git_set_config now verifies against the same scope it wrote to
    - git_test_config now uses the scope parameter instead of effective config
    - SSH command uses StrictHostKeyChecking=accept-new and LogLevel=ERROR
      to suppress 'permanently added to known hosts' messages
    espadonne committed