Commit Graph

45 Commits

Author SHA1 Message Date
02e9de0cbd Proper formatting 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
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
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
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
153d09f3ef Add functionality to check out worktree-ready repos 2021-11-21 17:10:25 +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
c97adefeb4 Add clippy fixes 2021-11-20 11:30:55 +01:00
5f0ec0fec8 Add status command 2021-11-19 22:24:21 +01:00
c0172f9af5 Make tree root config non-optional 2021-11-19 22:20:52 +01:00
1efbf6728d Drop separate variable for repo name 2021-11-19 22:19:32 +01:00
4c1a6c6ed7 Refactor path expansion into separate function 2021-11-19 22:19:12 +01:00
2fe003ce04 Properly report changes to existing remotes 2021-11-18 11:44:44 +01:00
a4f2dee4f5 find: Fix name detection at non-root level 2021-11-18 11:21:27 +01:00
f6a51c70cc Initial commit 2021-11-18 11:04:48 +01:00