File: patch-set-format.html

package info (click to toggle)
arch 1.0pre15-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 20,180 kB
  • ctags: 4,560
  • sloc: ansic: 64,410; sh: 29,168; lisp: 1,896; awk: 1,044; makefile: 484; sed: 26
file content (240 lines) | stat: -rw-r--r-- 6,428 bytes parent folder | download
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<html>
<head>
<title>The arch Patch Set Format</title>
</head>
<body>

<a name="The_arch_Patch_Set_Format"></a>

<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>

<h2 align=center>The arch Patch Set Format</h2>




<small>
<b>up: </b><a href="arch.html#arch">arch</a></br>
<b>next: </b><a href="archive-format.html#The_arch_Archive_Format">The arch Archive Format</a></br>

<b>prev: </b><a href="theory-of-patches.html#The_Theory_of_Patches_and_Revisions">The Theory of Patches and Revisions</a></br>

</small>
<br>






<p><a name="index-pt:0"></a>

</p><p>An arch patch set is a directory containing a number of files and
subdirectories.  Each is described below.
</p><p><strong><u>Files:</u></strong>
</p><pre>
        orig-dirs-index
        mod-dirs-index
        orig-files-index
        mod-files-index

</pre>
<p><strong><u>Format:</u></strong>
</p><pre>
        &lt;file>&lt;tab>&lt;tag>

</pre>
<p><strong><u>Sorting:</u></strong>
</p><pre>
        sort -k 2

</pre>
<p>These contain indexes for all files and directories added, removed, or
modified between the two trees.
</p><p><strong><u>Files:</u></strong>
</p><pre>
        original-only-dir-metadata
        modified-only-dir-metadata

</pre>
<p><strong><u>Format:</u></strong>
</p><pre>
        &lt;metadata>&lt;tab>&lt;name>

</pre>
<p><strong><u>Sorting:</u></strong>
</p><pre>
        sort -t '&lt;tab>' -k 2

</pre>
<p>The field <code>&lt;metadata></code>
 contains literal output from the program
<code>file-metadata</code>
 given the options <code>--permissions</code>
.  Some example
output is:
</p><pre>
        --permissions 777

</pre>
<p>That output is also suitable for use as options and option arguments
to the program <code>set-file-metadata</code>
.   Future releases <code>arch</code>
 might add
additional flags (beside just <code>permissions</code>
).
</p><p>The list records the file permissions for all directories persent in
only one of the two trees.
</p><p><strong><u>Directories:</u></strong>
</p><pre>
        removed-files-archive
        new-files-archive

</pre>
<p>Each of these directories contains complete copies of all files that
occur in only the original tree (<code>removed-files-archive</code>
) or modified
tree (<code>new-files-archive</code>
).  Each saved file is archived at the same
relative location it had in its source tree, with permissions (at
least) preserved.
</p><p><strong><u>Directory:</u></strong>
</p><pre>
        patches

</pre>
<p>This directory contains a tree whose directory structure is a subset
of the directory structure of the modified tree.  It contains
modification data for directories and files common to both trees.
</p><p>For a file stored in the modified tree at the path <code>new_name</code>
, the
<code>patches</code>
 directory may contain:
</p><pre>
        new_name.link-orig

</pre>
<pre>
                The original file is a symbolic link.
                `new_name.link-orig' is a text file containing the
                target of that link plus a final newline.

</pre>
<pre>
                This file is only present if link target has changed,
                or if the link was replaced by a regular file.

</pre>
<pre>
        new_name.link-mod

</pre>
<pre>
                The modified file is a symbolic link and this file
                is a text file containing the target for the link plus
                a final newline.

</pre>
<pre>
                This file is only present if the link target has
                changed, or if the link replaces a regular file.

</pre>
<pre>
        new_name.original

</pre>
<pre>
                This is a complete copy of the file from the original
                tree, preserving (at least) permissions.

</pre>
<pre>
                This file is only present if the file was replaced by
                a symbolic link, or if the file contents can not be
                handled by `diff(1)'.

</pre>
<pre>
        new_name.modified

</pre>
<pre>
                This is a complete copy of the file from the modified
                tree, preserving (at least) permissions.

</pre>
<pre>
                This file is only present if the file replaces a
                symbolic link, or if the file contents can not be
                handled by `diff(1)'.

</pre>
<pre>
        new_name.patch

</pre>
<pre>
                This is a standard context diff between the original
                file and modified file.  One popular version of diff
                (`GNU diff') generates non-standard context diffs by
                omitting one copy of lines of context that are
                identical between the original and modified file, so
                for now, `.patch' files may have the same bug.
                Fortunately, the only popular version of `patch'
                (``GNU patch'') is tolerant of receiving such input.

</pre>
<pre>
        new_name.meta-orig
        new_name.meta-mod

</pre>
<pre>
                File metadata (currenly only permissions) changed
                between the two versions of the file.  These files
                contain output from the `file-metadata' program with
                the flags `--symlink --permissions', suitable for
                comparison to similar output, and for use as options
                and option arguments to `set-file-metadata'.

</pre>
<pre>
                These files are also included if a regular file has
                replaced a symbolic link or vice versa.

</pre>
<pre>
        new_name/=dir-meta-orig
        new_name/=dir-meta-mod

</pre>
<pre>
                Directory metadata (currenly only permissions) changed
                between the two versions of the directory containing
                these files.  These files contain output from the
                `file-metadata' program with the flags `--symlink
                --permissions', suitable for comparison to similar
                output, and for use as options and option arguments to
                `set-file-metadata'.

</pre>
<p><strong><u>Note:</u></strong> If a regular file (or symbolic link) replaces a directory, or
vice versa, this is recorded as a file (or link) removed (or added) in
one tree and added (or removed) in the other.
</p>







<small><i>arch: The arch Revision Control System

</i></small><br>


<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>

</body>