|
2 | 2 |
|
3 | 3 | ## Overview |
4 | 4 |
|
5 | | -**GitContentSearch** is a command-line tool written in C# that searches for specific content within files across different Git commits. The app supports searching within Content files (.xls, .xlsx) and text files (.txt, .sql, .cs, etc.). It efficiently identifies the commit where the search string appears, using a binary search algorithm for faster results. Progress is logged to a file, allowing you to resume the search if interrupted. |
| 5 | +**GitContentSearch** is the ideal tool if you've ever wanted to do `git blame` on Excel files. This command-line tool allows you to efficiently search for content across different Git commits in Excel files (.xls, .xlsx) and text files (.txt, .sql, .cs, etc.), making it a powerful solution for tracking changes even in non-text formats. |
| 6 | + |
| 7 | +The app identifies the commit where the search string appears, using an optimized binary search algorithm and reverse linear search for faster results in large commit histories. Progress is logged to a file, allowing you to resume the search if interrupted. |
6 | 8 |
|
7 | 9 | ## Features |
8 | 10 |
|
9 | | -- **Binary Search**: Quickly identifies the commit where the search string first appears and last disappears. |
10 | | -- **Supports Large Repos**: Handles extensive commit histories by narrowing down the search space. |
| 11 | +- **Optimized Search**: Quickly identifies the commit where the search string first appears and last disappears. |
| 12 | +- **Searches Across Multiple File Types**: Search in Excel files (.xls, .xlsx) and text files (.txt, .sql, .cs, etc.). |
11 | 13 | - **Log File**: Keeps track of all checked commits and results, allowing you to continue the search later. |
12 | 14 | - **Commit Range**: Specify an earliest and latest commit to limit the search scope. |
13 | 15 |
|
@@ -57,6 +59,7 @@ Note: Make sure the file path does not start with a forward slash (/), as this c |
57 | 59 | * `<search-string>`: The string you want to search for in the Content file. |
58 | 60 | * `--earliest-commit=<commit>`: (Optional) The earliest commit to begin the search. |
59 | 61 | * `--latest-commit=<commit>`: (Optional) The latest commit to end the search. |
| 62 | +- `--disable-linear-search`: Use this option to disable the linear search. When enabled, the tool will rely solely on binary search, which can improve performance in large repositories, especially if you already know that one of the commits contains the search string. |
60 | 63 | * `--working-directory=<path>`: (Optional) The directory where Git commands should be executed. Defaults to the user's temp directory if not provided. |
61 | 64 | * `--log-directory=<path>`: (Optional) The directory where the log file and temporary files will be stored. Defaults to the user's temp directory if not provided. |
62 | 65 |
|
|
0 commit comments