git-nested 1.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. git_nested-1.0.3/.codecov.yml +18 -0
  2. git_nested-1.0.3/.fish.rc +17 -0
  3. git_nested-1.0.3/.gitattributes +1 -0
  4. git_nested-1.0.3/.github/workflows/publish.yml +45 -0
  5. git_nested-1.0.3/.github/workflows/test.yml +45 -0
  6. git_nested-1.0.3/.gitignore +13 -0
  7. git_nested-1.0.3/.rc +19 -0
  8. git_nested-1.0.3/CONTRIBUTING.md +187 -0
  9. git_nested-1.0.3/LICENSE +21 -0
  10. git_nested-1.0.3/PKG-INFO +422 -0
  11. git_nested-1.0.3/README.md +396 -0
  12. git_nested-1.0.3/docs/diagrams.md +470 -0
  13. git_nested-1.0.3/lib/git-nested +13 -0
  14. git_nested-1.0.3/lib/git_nested.egg-info/PKG-INFO +422 -0
  15. git_nested-1.0.3/lib/git_nested.egg-info/SOURCES.txt +47 -0
  16. git_nested-1.0.3/lib/git_nested.egg-info/dependency_links.txt +1 -0
  17. git_nested-1.0.3/lib/git_nested.egg-info/entry_points.txt +2 -0
  18. git_nested-1.0.3/lib/git_nested.egg-info/requires.txt +1 -0
  19. git_nested-1.0.3/lib/git_nested.egg-info/top_level.txt +1 -0
  20. git_nested-1.0.3/lib/git_nested.py +2001 -0
  21. git_nested-1.0.3/pyproject.toml +94 -0
  22. git_nested-1.0.3/setup.cfg +4 -0
  23. git_nested-1.0.3/share/completion.bash +44 -0
  24. git_nested-1.0.3/share/enable-completion.sh +35 -0
  25. git_nested-1.0.3/share/git-nested.fish +34 -0
  26. git_nested-1.0.3/share/zsh-completion/_git-nested +72 -0
  27. git_nested-1.0.3/test/conftest.py +607 -0
  28. git_nested-1.0.3/test/scenarios/test_extraction.py +165 -0
  29. git_nested-1.0.3/test/scenarios/test_filemode.py +66 -0
  30. git_nested-1.0.3/test/scenarios/test_filter.py +254 -0
  31. git_nested-1.0.3/test/test_branch.py +282 -0
  32. git_nested-1.0.3/test/test_clean.py +32 -0
  33. git_nested-1.0.3/test/test_clone.py +116 -0
  34. git_nested-1.0.3/test/test_completion.py +143 -0
  35. git_nested-1.0.3/test/test_encode.py +62 -0
  36. git_nested-1.0.3/test/test_error.py +200 -0
  37. git_nested-1.0.3/test/test_fetch.py +34 -0
  38. git_nested-1.0.3/test/test_gitignore.py +41 -0
  39. git_nested-1.0.3/test/test_init.py +54 -0
  40. git_nested-1.0.3/test/test_nested_in_nested.py +369 -0
  41. git_nested-1.0.3/test/test_pull.py +582 -0
  42. git_nested-1.0.3/test/test_push.py +497 -0
  43. git_nested-1.0.3/test/test_rebase.py +47 -0
  44. git_nested-1.0.3/test/test_reclone.py +38 -0
  45. git_nested-1.0.3/test/test_status.py +107 -0
  46. git_nested-1.0.3/test/test_submodule.py +25 -0
  47. git_nested-1.0.3/test/test_version.py +14 -0
  48. git_nested-1.0.3/test/unittest/test_logging.py +162 -0
  49. git_nested-1.0.3/uv.lock +689 -0
@@ -0,0 +1,18 @@
1
+ # CodeCov config for Pull-Request comments
2
+
3
+ comment:
4
+ layout: "reach, diff, flags, files"
5
+ behavior: default
6
+ require_changes: false
7
+ require_base: false
8
+ require_head: true
9
+ hide_project_coverage: false
10
+
11
+ coverage:
12
+ status:
13
+ project:
14
+ default:
15
+ informational: true
16
+ patch:
17
+ default:
18
+ informational: true
@@ -0,0 +1,17 @@
1
+ #------------------------------------------------------------------------------
2
+ #
3
+ # This is the `git-nested` initialization script.
4
+ #
5
+ # This script turns on the `git-nested` Git subcommand for the *Fish* shell.
6
+ #
7
+ # Just add a line like this to your `~/.config/fish/config.fish`:
8
+ #
9
+ # source /path/to/git-nested/.fish.rc
10
+ #
11
+ #------------------------------------------------------------------------------
12
+
13
+ set GIT_NESTED_ROOT (dirname (realpath (status --current-filename)))
14
+ set PATH $GIT_NESTED_ROOT/lib $PATH
15
+
16
+ # Load git-nested completions
17
+ source $GIT_NESTED_ROOT/share/git-nested.fish
@@ -0,0 +1 @@
1
+ * text eol=lf
@@ -0,0 +1,45 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags: ['*.*.*']
6
+
7
+ jobs:
8
+ build:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - name: Checkout code
12
+ uses: actions/checkout@v4
13
+ with:
14
+ fetch-depth: 0
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v7
17
+ with:
18
+ python-version: '3.13'
19
+ enable-cache: true
20
+ - name: Setup project
21
+ run: uv sync --frozen
22
+ - name: Build package
23
+ run: uv run poe build
24
+ - name: Upload dist
25
+ uses: actions/upload-artifact@v4
26
+ with:
27
+ name: dist
28
+ path: dist/
29
+
30
+ publish:
31
+ needs: build
32
+ runs-on: ubuntu-latest
33
+ environment:
34
+ name: pypi
35
+ url: https://pypi.org/project/git-nested/
36
+ permissions:
37
+ id-token: write
38
+ steps:
39
+ - name: Download dist
40
+ uses: actions/download-artifact@v4
41
+ with:
42
+ name: dist
43
+ path: dist/
44
+ - name: Publish to PyPI
45
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,45 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: ['*']
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v7
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+ enable-cache: true
25
+ - name: Setup project
26
+ run: uv sync --frozen
27
+ - name: git config
28
+ run: |
29
+ git config --global user.email "you@example.com";
30
+ git config --global user.name "Your Name";
31
+ git config --global init.defaultBranch "master";
32
+ git config --global --add safe.directory "$PWD";
33
+ git config --global --add safe.directory "$PWD.git";
34
+ - name: Run poe all
35
+ run: uv run poe all
36
+ - name: Upload coverage reports to Codecov
37
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.14'
38
+ uses: codecov/codecov-action@v5
39
+ with:
40
+ token: ${{ secrets.CODECOV_TOKEN }}
41
+ - name: Upload test results to Codecov
42
+ if: ${{ !cancelled() }}
43
+ uses: codecov/test-results-action@v1
44
+ with:
45
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,13 @@
1
+ /test/tmp/
2
+ __pycache__
3
+ .venv/
4
+ *.pyc
5
+ *.pyo
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ .pytest_cache/
10
+ .coverage
11
+ htmlcov/
12
+ *.whl
13
+ *.tar.gz
git_nested-1.0.3/.rc ADDED
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+
3
+ [[ -n ${ZSH_VERSION-} ]] &&
4
+ GIT_NESTED_ROOT=$0 ||
5
+ GIT_NESTED_ROOT=$BASH_SOURCE
6
+
7
+ [[ $GIT_NESTED_ROOT =~ ^/ ]] ||
8
+ GIT_NESTED_ROOT=$PWD/$GIT_NESTED_ROOT
9
+
10
+ GIT_NESTED_ROOT=$(
11
+ cd "$(dirname "$GIT_NESTED_ROOT")" || return
12
+ pwd
13
+ ) || return
14
+
15
+ export GIT_NESTED_ROOT
16
+ export PATH=$GIT_NESTED_ROOT/lib:$PATH
17
+ export MANPATH=$GIT_NESTED_ROOT/man:$MANPATH
18
+
19
+ source "$GIT_NESTED_ROOT/share/enable-completion.sh"
@@ -0,0 +1,187 @@
1
+ # Contributing to git-nested
2
+
3
+ Thank you for your interest in contributing to git-nested! This document provides guidelines and instructions for contributing to the project.
4
+
5
+ ## Code of Conduct
6
+
7
+ Please be respectful and constructive in all interactions with the community. We aim to maintain a welcoming and inclusive environment for all contributors.
8
+
9
+ ## Getting Started
10
+
11
+ ### Setting Up Your Development Environment
12
+
13
+ 1. Fork the repository on GitHub
14
+ 2. Clone your fork locally:
15
+ ```bash
16
+ git clone https://github.com/YOUR_USERNAME/git-nested
17
+ cd git-nested
18
+ ```
19
+
20
+ 3. Install development dependencies:
21
+ ```bash
22
+ # Using uv (recommended)
23
+ uv sync --dev
24
+
25
+ # Or using pip
26
+ pip install -e ".[dev]"
27
+ ```
28
+
29
+ 4. Verify your setup:
30
+ ```bash
31
+ uv run poe all
32
+ ```
33
+
34
+ ## Development Workflow
35
+
36
+ ### Making Changes
37
+
38
+ 1. Create a feature branch from `main`:
39
+ ```bash
40
+ git checkout -b feature/your-feature-name
41
+ ```
42
+
43
+ 2. Make your changes, following the coding standards below
44
+
45
+ 3. Add or update tests to cover your changes
46
+
47
+ 4. Run all checks before committing:
48
+ ```bash
49
+ uv run poe all
50
+ ```
51
+
52
+ ### Running Tests Individually
53
+
54
+ ```bash
55
+ # Run all tests
56
+ uv run poe test
57
+
58
+ # Run specific test file
59
+ uv run poe test test/test_clone.py
60
+
61
+ # Run with verbose output
62
+ uv run poe test -vv
63
+
64
+ # You can also run pytest directly
65
+ uv run pytest
66
+ ```
67
+
68
+ ### Code Quality
69
+
70
+ We use [Ruff](https://github.com/astral-sh/ruff) for both linting and formatting:
71
+
72
+ ```bash
73
+ # Check code quality
74
+ uv run poe lint
75
+
76
+ # Auto-format code
77
+ uv run poe format
78
+ ```
79
+
80
+ Make sure all checks pass before submitting your PR.
81
+
82
+ ## Coding Standards
83
+
84
+ - Follow [PEP 8](https://pep8.org/) style guidelines (enforced by Ruff)
85
+ - Write clear, descriptive commit messages
86
+ - Add docstrings to all public functions and classes
87
+ - Keep functions focused and single-purpose
88
+ - Use type hints where appropriate
89
+ - Write self-documenting code with meaningful variable names
90
+
91
+ ## Testing Guidelines
92
+
93
+ - Write tests for all new features and bug fixes
94
+ - Ensure existing tests still pass
95
+ - Aim for high test coverage on modified code
96
+ - Use descriptive test names that explain what is being tested
97
+ - Group related tests in the same test file
98
+
99
+ ## Commit Message Guidelines
100
+
101
+ Write clear and descriptive commit messages:
102
+
103
+ - Use the imperative mood ("Add feature" not "Added feature")
104
+ - Keep the first line under 72 characters
105
+ - Reference issues and PRs where relevant
106
+ - Provide additional context in the body if needed
107
+
108
+ Example:
109
+ ```
110
+ Add support for shallow clones with --depth option
111
+
112
+ Implements shallow clone functionality to reduce clone time
113
+ and disk space for large repositories.
114
+
115
+ Fixes #123
116
+ ```
117
+
118
+ ## Submitting a Pull Request
119
+
120
+ 1. Push your changes to your fork:
121
+ ```bash
122
+ git push origin feature/your-feature-name
123
+ ```
124
+
125
+ 2. Open a Pull Request on GitHub against the `main` branch
126
+
127
+ 3. Fill out the PR template with:
128
+ - Clear description of the changes
129
+ - Motivation and context
130
+ - How the changes have been tested
131
+ - Any breaking changes or migration notes
132
+ - Related issue numbers
133
+
134
+ 4. Wait for review and address any feedback
135
+
136
+ 5. Once approved, a maintainer will merge your PR
137
+
138
+ ## Pull Request Review Process
139
+
140
+ - All PRs require at least one review before merging
141
+ - CI checks must pass (tests, linting, formatting)
142
+ - Reviewers may request changes or clarifications
143
+ - Be responsive to feedback and questions
144
+ - Maintainers will merge once all requirements are met
145
+
146
+ ## Reporting Bugs
147
+
148
+ If you find a bug, please open an issue on GitHub with:
149
+
150
+ - Clear, descriptive title
151
+ - Steps to reproduce the issue
152
+ - Expected behavior vs actual behavior
153
+ - Your environment (OS, Python version, git version)
154
+ - Any relevant error messages or logs
155
+ - Minimal reproduction example if possible
156
+
157
+ ## Requesting Features
158
+
159
+ Feature requests are welcome! Please:
160
+
161
+ - Check existing issues to avoid duplicates
162
+ - Clearly describe the feature and its use case
163
+ - Explain why it would be useful to other users
164
+ - Consider submitting a PR if you can implement it
165
+
166
+ ## Documentation
167
+
168
+ - Update documentation for any user-facing changes
169
+ - Add docstrings to new functions and classes
170
+ - Update README.md if adding new commands or features
171
+ - Include code examples where helpful
172
+
173
+ ## Questions?
174
+
175
+ - Check existing documentation and issues first
176
+ - Open a GitHub issue for questions about contributing
177
+ - Be patient and respectful when asking for help
178
+
179
+ ## License
180
+
181
+ By contributing to git-nested, you agree that your contributions will be licensed under the MIT License.
182
+
183
+ ## Recognition
184
+
185
+ Contributors will be recognized in the project. Significant contributors may be added to the AUTHORS or CONTRIBUTORS file.
186
+
187
+ Thank you for contributing to git-nested!
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright 2026 - Thorsten Klein <thorsten.klein.git@gmail.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.