Работа с SVN через TortoiseSVN. 7. Патчи (заплатки)

TortoiseSVN содержит функции экспорта изменения рабочей копии в файл и применения этих изменений к другой рабочей копии. Эти возможности используются, например, для организации pre-commit review.

Для создания патча выберите в меню TortoiseSVN пункт Create patch....

TortoiseSVN Create patch

Появиться окно с выбором файлов, изменения из которых войдут в патч. Обычно, нужно выбрать все.

TortoiseSVN Create patch

Затем появиться диалог с выбором имени и расположения файла патча и в конце отобразиться содержимое патча в специальном окне TortoiseSVN.

TortoiseSVN patch

Патч агрегирует изменения всех файлов проекта. Пути к файлам формируются относительно каталога из которого он создаётся. Поэтому применять патч нужно к тому же каталогу. Чтобы избежать путаницы создавайте патчи с корня рабочей копии.

Просматривать патч можно через просмотрщик TortoiseSVN или применив патч к рабочей копии.

TortoiseSVN Apply patch

Патч является простым текстовым файлом — просматривается в любом текстовом редакторе. Но без применения патча к рабочей копии видно только ближайшие к изменениям строки. Пример текста патча:

Index: uFormMain.dfm
===================================================================
--- uFormMain.dfm   (revision 2)
+++ uFormMain.dfm   (working copy)
@@ -13,4 +13,13 @@
   OldCreateOrder = False
   PixelsPerInch = 96
   TextHeight = 13
+  object Button1: TButton
+    Left = 288
+    Top = 160
+    Width = 75
+    Height = 25
+    Caption = 'Button1'
+    TabOrder = 0
+    OnClick = Button1Click
+  end
 end
Index: uFormMain.pas
===================================================================
--- uFormMain.pas   (revision 2)
+++ uFormMain.pas   (working copy)
@@ -4,10 +4,12 @@

 uses
   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
+  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

 type
   TForm1 = class(TForm)
+    Button1: TButton;
+    procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
@@ -21,4 +23,9 @@

 {$R *.dfm}

+procedure TForm1.Button1Click(Sender: TObject);
+begin
+  ShowMessage('Hello World!');
+end;
+
 end.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Последниее изменение: 24.08.2023, 06:42:55