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-smartmv
usesgit 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
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
|