A command-line tool that can decide whether to use `git mv` or `mv`.
Project description
git-smartmv - A tool that can decide whether to use git mv or mv
The git-smartmv command-line tool intelligently moves files and directories by selecting either git mv or mv based on the source and destination paths.
- When both the source and destination are within the same Git repository,
git-smartmvusesgit mv. - When moving files between a Git repository and a non-Git directory, or between different Git repositories, it defaults to
mv.
Installation
To install git-smartmv executable locally in ~/.local/bin/pathaction using pip, run:
sudo pip install --user git-smartmv
(Omitting the --user flag will install git-smartmv system-wide in /usr/local/bin/git-smartmv.)
Shell alias
To install the git-smartmv executable locally in ~/.local/bin/git-smartmv using pip, run:
alias mv="git-smartmv"
(Omitting the --user flag will install git-smartmv system-wide in /usr/local/bin/git-smartmv.)
Usage
The git-smartmv command-line tool accepts similar arguments as the mv command, including the source file or directory to be moved, and the destination file or directory.
usage: git-smartmv [--option] <SOURCE>... <DEST>
options:
-w WARNING_THRESHOLD, --warning-threshold WARNING_THRESHOLD
This will raise a warning if the number of files or directories being moved
exceeds the specified amount
-v, --verbose Report the names of the files and/or directories as they are being moved.
-f, --force Force renaming or moving of files and/or directories even if the destination
exists.
-p, --non-interactive
Do not prompt the user to confirm before executing 'mv' and/or 'git mv'
commands.
First example:
git smartmv file1 file2
Second example:
git smartmv file1 dir1/ file2 file3 directory/
Third example (non-interactive):
git smartmv --non-interactive dir1/ dir2/
License
Copyright (C) 2023-2025 James Cherti
Distributed under terms of the GNU General Public License version 3.
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git-smartmv-1.0.5.tar.gz.
File metadata
- Download URL: git-smartmv-1.0.5.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e3079fc98af894fa3e6d6af797b236527fd14cd9fc0da2976c41db0347d1791
|
|
| MD5 |
cf47a39417ada85527adbb7808f17f4e
|
|
| BLAKE2b-256 |
7e229cf7fd9b5394ce347ac9bfc3b2be3e200c82f7c907f77aaa05165a9e8a58
|
File details
Details for the file git_smartmv-1.0.5-py3-none-any.whl.
File metadata
- Download URL: git_smartmv-1.0.5-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
609eac38603141143db9ab938b8a0b2f4c0100159534394eaab30988eea74ab2
|
|
| MD5 |
2a9d8c688621701aa1d57fbdcbaf35c8
|
|
| BLAKE2b-256 |
8970a412c9328d27c3995f8a18160736800aead2603ad0a9e79ca31ae1ca9846
|