Metadata-Version: 2.4
Name: muchstuff
Version: 0.4.4
Summary: A TUI helper to keep code repositories up to date
Project-URL: homepage, https://github.com/yggdr/muchstuff
Project-URL: github, https://github.com/yggdr/muchstuff
Author-email: Konstantin Schukraft <muchstuff@schukraft.org>
License: ISC License
        
        Copyright (c) 2025 Konstantin Schukraft
        
        Permission to use, copy, modify, or distribute this software for any
        purpose with or without fee is hereby granted, provided that the above
        copyright notice and this permission notice appear in all copies.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
        OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: textual<3,>=1.0.0
Requires-Dist: tomli~=2.2.0; python_full_version < '3.11'
Requires-Dist: typing-extensions~=4.12.2; python_full_version < '3.11'
Requires-Dist: unidiff
Provides-Extra: debug
Requires-Dist: aiomonitor; extra == 'debug'
Requires-Dist: remote-pdb; extra == 'debug'
Description-Content-Type: text/markdown

# muchstuff

Small utility tool to keep interesting code repositories up to date while
also seeing what changed in them.

## Why?

Whenever I notice that I have a local clone of some software project lying
around, I wonder what new stuff has been introduced since the last time I
looked at it. To answer that question I usually go into the repo, cleanup
whatever local modifications I might have made, switch to their master/main
branch, and just pull. Then I can diff the old and new HEAD and see all the
exciting new stuff.

To automate the latter part of pulling the new stuff and viewing the diff, I
decided to write a little helper tool. There are of course quite a few tools
out there that keep a list of repositories synchronised, but getting them to
let me view the changes how I wanted to didn't seem easily possible. Coupled
with my desire to test out the [textual](https://textual.textualize.io) TUI
framework lead to me writing this.

## How?

Install `muchstuff` with the tool of your choice, e.g. `pipx(u) install
muchstuff`, give it a `~/.config/muchstuff.toml` looking like so:

```toml
[_DEFAULTS]
type = 'git'

[somerepo]
dest = '~/mywork/somerepo'
source = 'git@gitlab.mycompany.biz:mywork/somerepo'

[muchstuff]
dest = '/nas-storage/corerepos/muchstuff'
source = 'git@github.com:yggdr/muchstuff'
```

Now muchstuff will, upon starting, pull from all these repositories, and show
up to 4 outputs per repo:

- The result of the pull, as in the output of e.g. `git pull`
- The diff for each file changed
- The commits it just pulled
- The commits it just pulled, with the changes per commit.

## Known bugs

There are still a few issues that I haven't had the time or motivation to work
out. Use at your own risk.

Mercurial was supported in an older, less powerfull version. I'm not sure when
I will get around getting that up to speed again.
