Replace svn diff with vimdiff: a tool for comparing code
Under Linux, it is very difficult to directly use the svn diff command to view code modifications, so I searched for a better solution on the Internet, which is to use vimdiff as a code viewing tool for svn diff, especially for those who are accustomed to using vim. It's really convenient for people.
When using the svn diff command to compare the modifications of a certain file, for example, execute the following command:
$ svn diff -r4420 ngx_http_limit_req_module.c
Then the following command will actually be sent to the default diff program:
-u -L ngx_http_limit_req_module.c (revision 4420) -L ngx_http_limit_req_module.c (working copy) .svn/tmp/tempfile.tmp ngx_http_limit_req_module.c
Explanation of svn diff in svn official FAQ (Chinese, English):
When using an external diff command, Subversion generates a very complex command line. The first parameter is the specific --diff-cmd, followed by the specific --extensions (although extensions are ignored when using a blank -- symbol), or if --extensions is not specified or --extensions is empty, Add the '-u' parameter. For the third and fourth arguments, Subversion will pass a "-L" and the label of the first file (for example, ""project_issues.html (revision 11209)"). The fifth and sixth arguments are another " -L" and the label of the second file. The seventh and eighth arguments are the names of the first and second files respectively (for example, ".svn/text-base/project_issues.html.svn-base" and ".svn/tmp /project_issues.html.tmp").
After understanding the internal calling command of diff, it is relatively simple to use vimdiff as a diff program.
When vimdiff compares two files, you only need to know the paths and file names of the two files, which are the 7th and 8th parameters in the above diff internal command;
It also explains that it is not feasible to directly call vimdiff with --diff-cmd due to too many parameters in the diff internal command (the command is as follows).
$ svn diff --diff-cmd vimdiff -r4420 ngx_http_limit_req_module.c
So, we need to write another script ourselves, let this script be used as a diff program, obtain the internal command of diff, and then only take the 7th and 8th parameters, and then pass them to vimdiff, so that the parameters can be solved Too many questions.
The script (diffwrap.sh) is as follows:
#!/bin/sh # 去掉前5个参数 shift 5 # 使用vimdiff比较 vimdiff "$@"
In addition, svn also provides the function of modifying the default diff program in the configuration file, so that you do not need to specify --diff-cmd every time you use svn diff.
Modify ~/.subversion/config and find the following configuration line:
# diff-cmd = diff_program (diff, gdiff, etc.)
Just add the path to the above script, for example, change it to
diff-cmd = /usr/local/bin/diffwrap.sh
In the future, using the svn diff command will open vimdiff by default to compare two files.
Rendering:
The above is the detailed content of Replace svn diff with vimdiff: a tool for comparing code. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Version control is a very common operation in PHP development, and the most commonly used tool is SVN (Subversion). It can easily manage historical versions of code and code updates during collaborative development. The following will introduce how to use SVN for version control in PHP development. 1. Install the SVN client and server. First, you need to install the SVN client and server. The SVN client can download the corresponding version from the SVN official website and install it, while the server needs to be built by yourself. The specific method can be

Introduction to SVN SVN (Subversion) is a centralized version control system used to manage and maintain code bases. It allows multiple developers to collaborate on code development simultaneously and provides a complete record of historical modifications to the code. By using SVN, developers can: Ensure code stability and avoid code loss and damage. Track code modification history and easily roll back to previous versions. Collaborative development, multiple developers modify the code at the same time without conflict. Basic SVN Operations To use SVN, you need to install an SVN client, such as TortoiseSVN or SublimeMerge. Then you can follow these steps to perform basic operations: 1. Create the code base svnmkdirHttp://exampl

Detailed explanation of how to install and set up the EclipseSVN plug-in Eclipse is a widely used integrated development environment (IDE) that supports many different plug-ins to extend its functionality. One of them is the EclipseSVN plugin, which enables developers to interact with the Subversion version control system. This article will detail how to install and set up the EclipseSVN plug-in and provide specific code examples. Step 1: Install the EclipseSVN plug-in and open Eclipse

Under Linux, it is very difficult to directly use the svndiff command to view code modifications, so I searched for a better solution on the Internet, which is to use vimdiff as a code viewing tool for svndiff, especially for those who are accustomed to using vim. It is very convenient. When using the svndiff command to compare the modifications of a certain file, for example, if you execute the following command: $svndiff-r4420ngx_http_limit_req_module.c, the following command will actually be sent to the default diff program: -u-Lngx_http_limit_req_module.c(revision4420)-Lngx_

Installing SVN on CentOS is a very common operation. It is a powerful version control system that can be used to manage and track changes during software development. This article will introduce in detail how to install SVN on CentOS and provide some commonly used tools. Command line installation method. There are many ways to install SVN on CentOS. Two common installation methods will be introduced below. 1. Open the terminal and log in as the root user. 2. Run the following command to update the system package list: ```yumupdate3. Run the following command to install SVN: yuminstallsubversion4. After the installation is complete, you can verify whether SVN was successfully installed by running the following command: svn --v

Differences: 1. vss was developed by Microsoft and is paid, while svn is open source and free; 2. vss must have a client, while svn can use the client, command line mode, or read-only on the web page Access; 3. vss only supports windows systems, while svn supports windows and linux systems; 4. vss is a "lock-edit-unlock" mode, and svn defaults to a "modify-conflict-merge" mode; 5. The version number of vss corresponds is a single file, and the version number of svn corresponds to the entire version library.

As a Linux developer, you often need to use SVN to control project versions. For excellent developers, knowing how to check SVN versions is undoubtedly one of the essential skills. Today, I would like to take this opportunity to share my experience with you, hoping to help you better master this practical skill. 1. To install the SVN command line tool, please install the SVN command line tool in the Linux environment first! Please dial the terminal and then safely enter the following command to complete the installation: ```Dear user, please execute sudoapt-getinstallsubversion to install Subversion. 2. Connect to the SVN server After the installation is complete, we need to connect to the SVN server. Enter the following command:

As a commonly used server-side scripting language, PHP is widely used in the field of Web development due to its open source and cross-platform advantages. In the development of multi-person collaboration, version control is an indispensable tool. It can effectively manage the modification and update of source code and avoid conflicts caused by code out-of-synchronization among team members. As a popular version control tool, SVN is also widely used in PHP development. This article will introduce you to the basic knowledge of SVN version control in PHP development, including the installation of SVN.
