Grzegorz Dlugoszewski
09da7ea05b
Fix cyclop issues in url.go
2025-08-24 14:35:26 +02:00
Grzegorz Dlugoszewski
8a9002e678
Replace the godirwalk package with a native implementation, replace pathpkg with filepath for better cross-platform support
2025-08-24 12:55:40 +02:00
Grzegorz Dlugoszewski
f0365087ce
Remove the awkward "built at" section from --version
2025-08-23 22:36:03 +02:00
Grzegorz Dlugoszewski
31fa76afb8
Fix failing windows tests
...
Fix incorrect filepath.join usage in building filepaths from URL
2025-08-11 23:34:05 +02:00
Grzegorz Dlugoszewski
fe007fda43
Fix a git-list crash on empty repo or repo without a remote
2025-08-11 22:13:56 +02:00
Grzegorz Dlugoszewski
7ecef9c85d
Replace deprecated modules
...
Replace go-homedir with builtin os.UserHomeDir and pkg/errors with
builtin errors
2025-08-11 20:43:49 +02:00
Grzegorz Dlugoszewski
0d797d625a
Make the URL scheme default to ssh instead of https and make it configurable
2020-09-02 03:14:01 +02:00
Grzegorz Dlugoszewski
f610fd9930
Add a worker pool to status loader
...
This will limit a number of councurrently running git commands when loading statuses of a large number of repositories.
2020-07-31 14:23:22 +02:00
Grzegorz Dlugoszewski
ef3369bd4e
Fix typos in a comment
2020-07-31 09:28:48 +02:00
Grzegorz Dlugoszewski
5fe2ddb74f
Cleanup empty directories created by a failed git clone
2020-07-30 20:31:06 +02:00
Grzegorz Dlugoszewski
b2d1d773f7
Indicate if error occured during status loading and print the list of errors
2020-07-27 16:17:13 +02:00
Grzegorz Dlugoszewski
d660a73c7f
Add a path to error messages when directory can't be accessed
2020-07-27 13:23:49 +02:00
Grzegorz Dlugoszewski
c2fe6e6bab
Move test package inside the git package
...
It is not being used by other packages so it should belong to `git` package.
2020-07-27 12:17:30 +02:00
Grzegorz Dlugoszewski
3aef50a4d0
Move status loader into the git package
...
- Loading status belongs to git domain so it makes more sense for it to
be in git package.
- It also makes the `list` file simpler.
- Because status loader is now part of the RepoFinder, the ugly Repo interface is no longer necessary.
2020-07-27 11:15:35 +02:00
Grzegorz Dlugoszewski
13e936c376
Add repo finder tests
2020-07-08 14:58:19 +02:00
Grzegorz Dlugoszewski
cdca8b89d9
Move temp dir cleanup into tempDir function
...
Cleaning up belongs to a directory, not an abstract git repo.
2020-07-08 14:37:29 +02:00
Grzegorz Dlugoszewski
8ab4681c26
Refactor repoFinder
...
- Remove io package and move finder to git package
- Move tempDir and writeFile into test package. They are only used for testing purposes anyway.
- Add a way to specify parent folder for tempDir. Useful for testing nested repos.
- Add new test repos with .git/config files
2020-07-08 14:37:29 +02:00
Mallory Adams
5ab6031382
Do not traverse through git repositories ( #6 )
...
This makes `git list` a lot faster (10 minutes to under 2 minutes in one
test) and displays more useful information.
Example of `git list` from before this change demonstrating that `git
list` was hiding the information about the main repository in favour of
showing information about a `composer` dependency:
```
├── iguana-extras
│ └── vendor
│ └── dxw
│ └── iguana HEAD ok
│ master ok
```
Example from after this change:
```
├── iguana-extras master [ 1 untracked ]
│ feature/readme no upstream
│ feature/update-iguana no upstream
│ fix/php-cs-fixer no upstream
```
2020-07-08 14:35:22 +02:00
Grzegorz Dlugoszewski
0064fc3b8e
Add --skip-host flag to get command ( #7 )
...
When set, git-get won't create a directory for the repo host.
So instead of `<root>/<host>/<user>/<repo>`, a repo will be cloned into `<root>/<user>/<repo>`.
It's useful if all repos some from the same host and that additional folder feels redundant.
2020-07-07 18:35:30 +02:00
Grzegorz Dlugoszewski
132b3ef13d
Fix missing fetch call
2020-07-02 09:39:35 +02:00
Grzegorz Dlugoszewski
5c9cb12bab
Fix tree view indentation
2020-07-01 21:31:50 +02:00
Grzegorz Dlugoszewski
d964158bf7
Fix problems with loading values from gitconfig
2020-06-30 21:25:42 +02:00
Grzegorz Dlugoszewski
aee6d8209b
Improve printing tree view
...
...by correctly indenting the branches list
2020-06-30 16:19:15 +02:00
Grzegorz Dlugoszewski
d0797ad9b7
Fix showing stdout of git commands
...
We need to capture also stderr because this is where eg, the progress of git clone is printed
2020-06-30 13:54:43 +02:00
Grzegorz Dlugoszewski
29330d8af7
Add missing docstrings
2020-06-30 11:32:05 +02:00
Grzegorz Dlugoszewski
235ea0d811
Replace path.Join with filepath.Join
...
Path is for URLs, filepath is for os paths. This solves the problem with wrong repo root on windows.
2020-06-30 11:25:49 +02:00
Grzegorz Dlugoszewski
b8606568ef
Expand home dir path after reading config
2020-06-30 11:22:55 +02:00
Grzegorz Dlugoszewski
7b9e74f903
Skip cloning a repo if target path already exists when getting a dump file
2020-06-30 10:23:10 +02:00
Grzegorz Dlugoszewski
28b24ec5ce
Add a run package responsible for running git commands
...
- Add better git error handling
- Move repo helpers into a separate package
2020-06-26 13:36:58 +02:00
Grzegorz Dlugoszewski
7c5abae165
Remove verbose flags from git clone
2020-06-25 13:00:30 +02:00
Grzegorz Dlugoszewski
539c3beb90
Load repos status simultaneously with goroutines
...
Also, refactor printer interface.
2020-06-25 12:53:27 +02:00
Grzegorz Dlugoszewski
da8849d7f5
Update dump tests to better follow table-driven pattern
2020-06-25 09:50:12 +02:00
Grzegorz Dlugoszewski
fe07ab3c8a
Fix typos in comments
2020-06-25 00:00:09 +02:00
Grzegorz Dlugoszewski
8c132cdafa
Remove gogit and major refactoring ( #2 )
...
* Fix typo in readme
* Reimplement all git methods without go-git
* Rename repo pkg to git, add gitconfig methods
* Improve tests for configuration reading
* Rename package file to io and move RepoFinder there
* Refactor printers
- Remove smart printer
- Decouple printers from git repos with interfaces
- Update printer functions
- Remove unnecessary flags
- Add better remote URL detection
* Update readme and go.mod
* Add author to git commit in tests
Otherwise tests will fail in CI.
* Install git before running tests and don't use cgo
* Add better error message, revert installing git
* Ensure commit message is in quotes
* Set up git config before running tests
2020-06-24 23:54:44 +02:00
Grzegorz Dlugoszewski
4868713746
Update help commands and errors messages
2020-06-19 16:39:26 +02:00
Grzegorz Dlugoszewski
de51c05158
Update readme, add some todos, add example svg
2020-06-19 13:31:01 +02:00
Grzegorz Dlugoszewski
32211e6408
Cleanup the print package
...
- Use strings.Builder instead of concatenation
- Move smart tree to a separate file
- Add missing docstrings
2020-06-18 19:20:03 +02:00
Grzegorz Dlugoszewski
4fbdcde57b
Fallback to default branch when cloning instead of parsing
2020-06-18 18:45:04 +02:00
Grzegorz Dlugoszewski
e800652a6e
Implement ignoreExisting flag and set default branch also for dump cloning
2020-06-18 17:30:42 +02:00
Grzegorz Dlugoszewski
7ba950a6a0
Refactor cloning dump file
2020-06-18 17:10:14 +02:00
Grzegorz Dlugoszewski
3e9c7644c6
Rename bundle to dump
2020-06-18 15:47:15 +02:00
Grzegorz Dlugoszewski
5a588f22d1
Refactor implementations of get and list commands
...
- Simplify the main functions by moving actual implementation to "pkg" package
- Remove the "path" package and move files into the root "pkg" package
- Replace viper with explicit Cfg structs
2020-06-18 15:44:10 +02:00
Grzegorz Dlugoszewski
8511cd6c97
Rename git package to repo package
2020-06-18 14:22:03 +02:00
Grzegorz Dlugoszewski
da8f0931d0
Add a "dump" output option to git-list
...
It prints a list of all repos URL and is supposed to be consumed by `git get --dump` option.
2020-06-18 11:05:39 +02:00
Grzegorz Dlugoszewski
5835777850
Split get and list commands into separate binaries
2020-06-12 21:36:31 +02:00
Grzegorz Dlugoszewski
c71ebea2d4
Move the version metadata to cfg packageThis way it can be used by multiple binaries.
2020-06-12 21:09:32 +02:00
Grzegorz Dlugoszewski
33ca245d3a
Refactor pkg directory back
2020-06-12 20:19:05 +02:00
Grzegorz Dlugoszewski
f3d0df1bfd
Refactor packages structure
...
- Isolate files into their own packages
- Create new printer package and interface
- Refactor Repo stuct to embed the go-git *Repository directly
- Simplify cmd package
2020-06-08 12:07:03 +02:00
Grzegorz Dlugoszewski
29c21cb78d
Improve the implementation of the smart tree printer
...
It now correctly indents lines with branches status
2020-06-06 16:56:42 +02:00
Grzegorz Dlugoszewski
13c03bc2ef
Add new tree implementation and remove treeprint dependency
2020-06-06 10:00:11 +02:00