Skip to main content

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 uses git 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

git-smartmv-1.0.5.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

git_smartmv-1.0.5-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

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

Hashes for git-smartmv-1.0.5.tar.gz
Algorithm Hash digest
SHA256 4e3079fc98af894fa3e6d6af797b236527fd14cd9fc0da2976c41db0347d1791
MD5 cf47a39417ada85527adbb7808f17f4e
BLAKE2b-256 7e229cf7fd9b5394ce347ac9bfc3b2be3e200c82f7c907f77aaa05165a9e8a58

See more details on using hashes here.

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

Hashes for git_smartmv-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 609eac38603141143db9ab938b8a0b2f4c0100159534394eaab30988eea74ab2
MD5 2a9d8c688621701aa1d57fbdcbaf35c8
BLAKE2b-256 8970a412c9328d27c3995f8a18160736800aead2603ad0a9e79ca31ae1ca9846

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page