Home System Tutorial LINUX Replace svn diff with vimdiff: a tool for comparing code

Replace svn diff with vimdiff: a tool for comparing code

Jan 09, 2024 pm 07:54 PM
svn vimdiff diff

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 "$@"
Copy after login

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:

使用vimdiff代替svn diff的查看代码工具

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use SVN for version control in PHP development How to use SVN for version control in PHP development Jun 27, 2023 pm 01:39 PM

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

Java SVN: the guardian of the code repository, ensuring code stability Java SVN: the guardian of the code repository, ensuring code stability Mar 09, 2024 am 09:20 AM

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 Detailed explanation of how to install and set up the EclipseSVN plug-in Jan 28, 2024 am 08:42 AM

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

Replace svn diff with vimdiff: a tool for comparing code Replace svn diff with vimdiff: a tool for comparing code Jan 09, 2024 pm 07:54 PM

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_

SVN installation on CentOS and command line installation SVN installation on CentOS and command line installation Feb 13, 2024 am 11:24 AM

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

What is the difference between svn and vss What is the difference between svn and vss Jun 21, 2022 am 11:23 AM

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.

Essential skills for Linux developers: simply master SVN version control Essential skills for Linux developers: simply master SVN version control Jan 26, 2024 pm 09:54 PM

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:

Getting Started with PHP: SVN Version Management Getting Started with PHP: SVN Version Management May 20, 2023 am 08:29 AM

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.

See all articles