Metadata-Version: 2.4
Name: git-search-replace
Version: 1.0.2
Summary: a utility on top of git for project-wide search-and-replace that includes filenames too
Home-page: https://github.com/da-x/git-search-replace
Author: Dan Aloni
Author-email: alonid@gmail.com
License: LICENSE.txt
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: License :: OSI Approved :: BSD License
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license
Dynamic: summary

About
-----
*git-search-replace* is a small utility on top of plain `git` for performing project-wide search-and-replace only on git-controlled files. It applies its searches to filenames as well as their content. The underlying syntax for the search regex is Python's.

It is designed to be a bit more instructive to the developer, compared to hackish `bash` scripts around `sed`.

Key features are:

* By default, only act as grep to show what is going to change.
* Dry run mode '--diff' shows a unidiff of the changes that the search-and-replace would do, so that the developer can review for correctness. No working directory files are modified.
* Fix mode '--fix' performs the actual changes and associated 'git mv'.

Syntax
------
    Usage: gsr [options] (FROM-SEPARATOR-TO...)

    Options:
      -h, --help            show this help message and exit
      -s STRING, --separator=STRING
                        The separator string which separates FROM regex and TO expression
      -f, --fix             Perform changes in-place
      -d, --diff            Use 'diff' util to show differences

The expressions are tuples in the form of FROM-SEPARATOR-TO, with SEPARATOR defaults to '///'.

Examples
--------

Shell escaping needs to be taken into consideration. The examples below should work with the major UNIX shells.

    gsr old_name///new_name --diff

This shows a diff that represents the replacement of 'old_name' with 'new_name'.

    gsr \\bold_name\\b///new_name --fix

This uses Python regex expression \b for matching at word boundaries for whole identifiers. This invocation will perform changes in-place because of '--fix'.

    gsr 'things with space///with other stuff' --diff

Note that shells properly de-escape the commas from the expression above.
