Commit Graph

60 Commits

Author SHA1 Message Date
c0168c3650 Add helper function on RepoStatus to check clean state 2021-12-31 11:20:01 +01:00
717b0d3a74 Add fetch & pull option to worktrees 2021-12-31 11:20:01 +01:00
fcbad5a3eb Refactor worktree into own struct 2021-12-31 10:58:11 +01:00
ae9a928d45 Detect default branch from grm.toml if possible 2021-12-31 10:58:08 +01:00
3ff7b61518 Refuse to convert to worktree with ignored files 2021-12-23 18:33:14 +01:00
61a8d63374 Allow nested worktree directories 2021-12-23 18:33:14 +01:00
92e4856dd9 Remove branch-namespace option 2021-12-23 18:33:14 +01:00
02e9de0cbd Proper formatting 2021-12-23 18:33:14 +01:00
552b3a6aad SSH: Fall back to ~/.ssh/id_rsa when no agent available 2021-12-23 18:33:14 +01:00
fcc22791e5 Refuse to push against non-pushable remotes (e.g. HTTPS for now) 2021-12-23 18:33:14 +01:00
b183590096 Add default tracking configuration 2021-12-23 18:33:14 +01:00
27586b5ff0 Add functionality for persistent branches 2021-12-23 18:33:14 +01:00
4a9f1bc278 Make new clippy happy 2021-12-21 16:15:12 +01:00
0b181b9b79 Run cargo fmt with new cargo version 2021-12-21 16:15:12 +01:00
a51e5f8918 Fix regression of find with broken repos 2021-12-02 12:43:45 +01:00
f0c8805cf3 Refactor
This refactors a huge chunk of the code base to make it more maintainable.

Main points:

* Proper separation between bin and lib. Bin handles argument parsing &
  validation and (most of) the output. Lib provides interfaces for all
  opreations.

* Before, libgit2 internals were literred throughout the codebase,
  mainly the `Repository` struct and `git2::Error` in Results. They
  library is now properly wrapped in `repo.rs`, which exposes only the
  required functionality. It also standardizes the Error messages
  (they're just Strings for now) and handles stuff like the copious
  usage of Options to wrap maybe-invalid-utf-8 values. The program will
  still panic on non-utf-8 Strings e.g. in git remotes, but I guess this
  is acceptable. If you actually manage to hit this case, I promise I'll
  fix it :D

* Many unwraps() are now gone and properly handled.

* The table printing functionality is now confined to `table.rs`,
  instead of passing tables as parameters through the whole program.
2021-12-01 20:12:24 +01:00
Douwe Schulte
8b7b91d005 Made a single error message not stall the repo finding process 2021-11-29 21:13:39 +01:00
4e83aba672 Fix formatting of push error message 2021-11-29 00:42:36 +01:00
e2e55b8e79 Properly handle error during repo open 2021-11-29 00:42:36 +01:00
655379cd61 Return failures during sync 2021-11-29 00:42:36 +01:00
340085abf8 Detect change from worktree to non-worktree during sync 2021-11-29 00:42:36 +01:00
f5f8dfa188 Better error message when config not found 2021-11-29 00:42:36 +01:00
48f3bc0199 Support file remotes 2021-11-28 16:23:30 +01:00
0973ae36b8 Properly report push errors 2021-11-28 16:22:22 +01:00
09c67d4908 Remove wrong error message about remote branch 2021-11-28 16:22:22 +01:00
1e6c9407b6 Do not remove worktree for default branch 2021-11-26 17:21:37 +01:00
b967b6dca3 Set git config properly for worktrees on init/clone
Close #1
2021-11-26 17:21:37 +01:00
83973f8a1a Fix unnecessary to_string() 2021-11-26 17:21:37 +01:00
ff32759058 Add subcommand that converts existing repository
Close #6
2021-11-26 17:21:37 +01:00
4ad4a55631 Use single quotes for remote/branch separator 2021-11-24 19:37:11 +01:00
0c6a4a72ef Move repo-tree functionality into own subcommand 2021-11-24 19:22:18 +01:00
e516a652f5 Fix typo 2021-11-24 17:22:10 +01:00
ddce614009 Fix repo change detection 2021-11-24 17:22:10 +01:00
3aecee3549 Set up tracking branches if required 2021-11-24 17:22:10 +01:00
667ea87c39 Do not pass as value needlessly 2021-11-24 17:22:10 +01:00
3e18caf719 Use "namespace" instead of "prefix" for branches 2021-11-24 17:22:10 +01:00
711d9131da Expand the worktree functionality 2021-11-22 21:19:12 +01:00
8ba214d6cf Fix setting for root if there is a root-level repo 2021-11-22 21:19:10 +01:00
77c00cee5f Do not output anything when no repos found 2021-11-22 21:19:10 +01:00
12cb18c528 Fix output for ahead/behind branches 2021-11-22 21:19:02 +01:00
fa40f4d6aa Add some unit tests for path expansion 2021-11-22 21:11:41 +01:00
78a957268d Add a few simple integration tests 2021-11-22 21:11:41 +01:00
ca1f649ecf Linting & formatting 2021-11-22 21:11:31 +01:00
bbedc9d8a8 Fix debug output 2021-11-21 21:13:28 +01:00
09f22edf49 Add commands to manage worktrees 2021-11-21 17:10:30 +01:00
b0746c95b5 Report on untracked files 2021-11-21 17:10:30 +01:00
153d09f3ef Add functionality to check out worktree-ready repos 2021-11-21 17:10:25 +01:00
74a7772a29 Fix wrong report when ignored files exist 2021-11-20 18:04:02 +01:00
5df6dcb053 Shorten report for unchanged repo 2021-11-20 18:03:40 +01:00
5f98061581 Do not panic on empty remotes array 2021-11-20 17:49:22 +01:00