p4ruby 2014.2.0.pre3-x86-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +24 -0
- data/ext/P4/clientprogressruby.cpp +99 -0
- data/ext/P4/clientprogressruby.h +52 -0
- data/ext/P4/clientuserruby.cpp +726 -0
- data/ext/P4/clientuserruby.h +133 -0
- data/ext/P4/extconf.rb +546 -0
- data/ext/P4/gc_hack.h +10 -0
- data/ext/P4/p4.cpp +1338 -0
- data/ext/P4/p4clientapi.cpp +724 -0
- data/ext/P4/p4clientapi.h +239 -0
- data/ext/P4/p4error.cpp +122 -0
- data/ext/P4/p4error.h +61 -0
- data/ext/P4/p4mapmaker.cpp +459 -0
- data/ext/P4/p4mapmaker.h +69 -0
- data/ext/P4/p4mergedata.cpp +272 -0
- data/ext/P4/p4mergedata.h +97 -0
- data/ext/P4/p4result.cpp +259 -0
- data/ext/P4/p4result.h +86 -0
- data/ext/P4/p4rubydebug.h +45 -0
- data/ext/P4/p4specdata.cpp +108 -0
- data/ext/P4/p4specdata.h +52 -0
- data/ext/P4/p4utils.cpp +62 -0
- data/ext/P4/p4utils.h +46 -0
- data/ext/P4/specmgr.cpp +687 -0
- data/ext/P4/specmgr.h +102 -0
- data/ext/P4/undefdups.h +64 -0
- data/lib/1.9/P4.so +0 -0
- data/lib/2.0/P4.so +0 -0
- data/lib/2.1/P4.so +0 -0
- data/lib/2.2/P4.so +0 -0
- data/lib/P4.rb +672 -0
- data/lib/P4.so +0 -0
- data/lib/P4/version.rb +3 -0
- data/p4-doc/user/p4rubynotes.txt +789 -0
- metadata +77 -0
data/lib/P4.so
ADDED
Binary file
|
data/lib/P4/version.rb
ADDED
@@ -0,0 +1,789 @@
|
|
1
|
+
Release Notes for
|
2
|
+
P4Ruby, Perforce's script API for Ruby
|
3
|
+
|
4
|
+
Version 2014.2
|
5
|
+
|
6
|
+
Introduction
|
7
|
+
|
8
|
+
This document lists all user-visible changes to P4Ruby
|
9
|
+
from release 2007.3, the first supported P4Ruby release.
|
10
|
+
|
11
|
+
Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547.
|
12
|
+
YYYY is the year; R is the release of that year; CCCCC is the
|
13
|
+
bug fix change level. Each bug fix in these release notes is
|
14
|
+
marked by its change number. Any build includes (1) all bug fixes
|
15
|
+
of all previous releases and (2) all bug fixes of the current
|
16
|
+
release up to the bug fix change level.
|
17
|
+
|
18
|
+
P4Ruby is precompiled against a corresponding version of the Perforce
|
19
|
+
C++ API, e.g., P4Ruby 2014.2 will be compiled using a 2014.2 version
|
20
|
+
of the P4API. You can always install P4Ruby using a source-only
|
21
|
+
variation, selecting a specific version of the P4API.
|
22
|
+
|
23
|
+
To determine the version of your P4Ruby, and which version of the
|
24
|
+
P4API it has been built with, issue the following command:
|
25
|
+
ruby -rP4 -e "puts P4.identify"
|
26
|
+
|
27
|
+
--------------------------------------------------------------------------
|
28
|
+
|
29
|
+
Installing P4Ruby
|
30
|
+
|
31
|
+
The main command to install p4ruby is via gem or bundle.
|
32
|
+
|
33
|
+
gem install p4ruby
|
34
|
+
|
35
|
+
Or, in your Gemfile, specify
|
36
|
+
|
37
|
+
ruby
|
38
|
+
gem 'p4_web_api_client'
|
39
|
+
|
40
|
+
And then execute:
|
41
|
+
|
42
|
+
bundle
|
43
|
+
|
44
|
+
--------------------------------------------------------------------------
|
45
|
+
|
46
|
+
Building P4Ruby from Source
|
47
|
+
|
48
|
+
1. Download the Perforce C++ API from the Perforce FTP site at
|
49
|
+
"ftp://ftp.perforce.com/perforce". The API archive is located
|
50
|
+
in release and platform-specific subdirectories and is named
|
51
|
+
"p4api.tgz".
|
52
|
+
|
53
|
+
IMPORTANT: Mac OS X users MUST use the 'darwin' variant
|
54
|
+
of the Perforce API. Using the 'macos' variant
|
55
|
+
does not work.
|
56
|
+
|
57
|
+
Windows users should get the API from the
|
58
|
+
"bin.mingwx86" platform directory for Ruby 1.8 or 1.9.
|
59
|
+
|
60
|
+
TODO - Document the correct directory for Ruby 2.0 and 2.1 on
|
61
|
+
Windows when it is made available.
|
62
|
+
|
63
|
+
Note: 32-bit builds of P4Ruby require a 32-bit version of the
|
64
|
+
C++ API and a 32-bit version of Ruby. 64-bit builds of
|
65
|
+
P4Ruby require a 64-bit version of the C++ API and a
|
66
|
+
64-bit version of Ruby.
|
67
|
+
|
68
|
+
Unzip the archive into an empty directory.
|
69
|
+
|
70
|
+
2. Extract the P4Ruby API archive into a new, empty directory.
|
71
|
+
|
72
|
+
3. Execute the command:
|
73
|
+
|
74
|
+
rake compile --p4api_dir=<absolute path to Perforce C++ API>
|
75
|
+
|
76
|
+
4. Test your distribution, which relies on a locally installed p4d,
|
77
|
+
easily made available via the p4util project:
|
78
|
+
|
79
|
+
gem install p4util
|
80
|
+
p4util download p4d
|
81
|
+
rake test
|
82
|
+
|
83
|
+
5. To install P4Ruby, generate the gem:
|
84
|
+
|
85
|
+
gem build p4ruby.gemspec
|
86
|
+
gem install p4ruby-<version>.gem \
|
87
|
+
--with-p4api-dir=<absolute path to Perforce C++ API>
|
88
|
+
|
89
|
+
SSL support
|
90
|
+
-----------
|
91
|
+
|
92
|
+
Perforce Server 2012.1 and later supports SSL connections and the
|
93
|
+
C++ API has been compiled with this support. For applications that
|
94
|
+
do not requireSSL support the C++ API provides a stub library
|
95
|
+
(libp4sslstub.*) to satisfy the linker requirements.
|
96
|
+
|
97
|
+
If the P4Ruby build detects that OpenSSL is available, it will be
|
98
|
+
included by default. To disable, execute the gem command using
|
99
|
+
--without-ssllib. If you want to use libraries deployed to nonstandard
|
100
|
+
paths, you will have to alter ext/P4/extconf.rb and include the
|
101
|
+
dir_config() directives appropriate for your system.
|
102
|
+
|
103
|
+
--------------------------------------------------------------------------
|
104
|
+
|
105
|
+
Compatibility Statements
|
106
|
+
|
107
|
+
Server Compatibility
|
108
|
+
|
109
|
+
You can use any release of P4Ruby with any release of the
|
110
|
+
Perforce server later than 2001.1
|
111
|
+
|
112
|
+
API Compatibility
|
113
|
+
|
114
|
+
The 2014.2 release of P4Ruby supports the 2014.2 Perforce API.
|
115
|
+
Older releases might work but are not supported.
|
116
|
+
|
117
|
+
Ruby Compatibility
|
118
|
+
|
119
|
+
The 2014.2 release of P4Ruby is supported building from source
|
120
|
+
with Ruby 1.9, 2.0, and 2.1.
|
121
|
+
|
122
|
+
For detailed compatibility, please check the following table:
|
123
|
+
|
124
|
+
Ruby Release | P4Ruby Release
|
125
|
+
===================================
|
126
|
+
1.6 | up to 2009.2 (unsupported)
|
127
|
+
1.8 | 2007.3 or later (unsupported)
|
128
|
+
1.9 | 2011.1 or later
|
129
|
+
2.0 | 2014.1 or later
|
130
|
+
2.1 | 2014.2 or later
|
131
|
+
|
132
|
+
The 2014.1 P4Ruby Windows installer requires Ruby 1.8 and was
|
133
|
+
built with RubyInstaller 1.8 and MinGW 32-bit.
|
134
|
+
|
135
|
+
TODO When MinGW-w64 builds are available, indicate that the
|
136
|
+
P4Ruby 2014.2 builds do not need the windows installer.
|
137
|
+
|
138
|
+
OpenSSL Compatibility
|
139
|
+
|
140
|
+
To build P4Ruby with encrypted communication support, you must
|
141
|
+
use the version of OpenSSL that Perforce C/C++ API has been
|
142
|
+
built against. Running P4Ruby linked to an older library will
|
143
|
+
fail with the error:
|
144
|
+
|
145
|
+
"SSL library must be at least version 1.0.1."
|
146
|
+
|
147
|
+
The 2014.1 release of P4Ruby is supported with OpenSSL 1.0.1
|
148
|
+
|
149
|
+
For detailed compatibility, please check the following table:
|
150
|
+
|
151
|
+
Perforce C/C++ API Version | OpenSSL Release
|
152
|
+
============================================
|
153
|
+
2012.1 | 1.0.0
|
154
|
+
2012.2 | 1.0.1g+
|
155
|
+
2014.1 | 1.0.1g+
|
156
|
+
2014.2 | 1.0.1i+
|
157
|
+
|
158
|
+
Platform Compatibility
|
159
|
+
|
160
|
+
While P4Ruby is generally portable, this release is certified
|
161
|
+
only on the following platforms:
|
162
|
+
|
163
|
+
Linux 2.6 Intel (x86, x86_64)
|
164
|
+
Windows XP SP2+, 2003, Vista, 7, 2008 Intel (x86)
|
165
|
+
Mac OS X 10.6, 10.7, 10.8 (x86_64), 10.9 (x86_64)
|
166
|
+
|
167
|
+
Note: As of 2012.1, a universal build of the Perforce C/C++
|
168
|
+
API is no longer available for Darwin. P4Ruby is now
|
169
|
+
a 64-bit only library on Darwin and must be built with
|
170
|
+
a 64-bit version of the Perforce C/C++ API for Darwin.
|
171
|
+
This has been tested with a universal build of Ruby and
|
172
|
+
is known to work.
|
173
|
+
|
174
|
+
Compiler Compatibility
|
175
|
+
|
176
|
+
To build P4Ruby from source, you must use a version of Ruby that
|
177
|
+
has been compiled with the same compiler used to build the
|
178
|
+
Perforce C++ API: for most platforms, use gcc/g++.
|
179
|
+
|
180
|
+
Attempting to use a different compiler or a different version
|
181
|
+
of the compiler causes linker errors due to differences in name
|
182
|
+
handling between compilers.
|
183
|
+
|
184
|
+
Compatibility with Previous Releases
|
185
|
+
|
186
|
+
Unless otherwise stated below, the 2014.1 release of P4Ruby is
|
187
|
+
compatible with previous releases from Perforce Software.
|
188
|
+
|
189
|
+
Known Limitations
|
190
|
+
|
191
|
+
The Perforce client-server protocol is not designed to support
|
192
|
+
multiple concurrent queries over the same connection. For this
|
193
|
+
reason, multi-threaded applications using the C++ API or the
|
194
|
+
script APIs (P4Perl, P4Ruby, etc.) should ensure that a
|
195
|
+
separate connection is used for each thread or that only one
|
196
|
+
thread may use a shared connection at a time.
|
197
|
+
|
198
|
+
Compatibility with P4Ruby from the Public Depot
|
199
|
+
|
200
|
+
Perforce P4Ruby is significantly different from the P4Ruby in
|
201
|
+
the Perforce Public Depot. It contains several improvements and
|
202
|
+
interface changes intended to make P4Ruby consistent with the
|
203
|
+
other scripting interfaces, and with Ruby in general.
|
204
|
+
|
205
|
+
If you are migrating from Public Depot P4Ruby, edit your
|
206
|
+
scripts to ensure that they comply with the new interface.
|
207
|
+
The differences are detailed below.
|
208
|
+
|
209
|
+
Deleted Methods
|
210
|
+
---------------
|
211
|
+
The following methods have been deleted from the P4 class and
|
212
|
+
are no longer available:
|
213
|
+
|
214
|
+
output The output is returned by the run* methods
|
215
|
+
parse_forms Form parsing is now always on
|
216
|
+
tagged See tagged? and tagged= below.
|
217
|
+
|
218
|
+
Public Depot P4Ruby also contained compatibility interfaces
|
219
|
+
for the following methods, all of which have been removed. In
|
220
|
+
these cases, the method on the right-hand side has also been in
|
221
|
+
Public Depot P4Ruby for some time, and most scripts use
|
222
|
+
that form already.
|
223
|
+
|
224
|
+
Public Depot Method Perforce P4Ruby Method
|
225
|
+
------------------- ----------------------
|
226
|
+
cwd cwd=
|
227
|
+
client client=
|
228
|
+
host host=
|
229
|
+
port port=
|
230
|
+
user user=
|
231
|
+
debug debug=
|
232
|
+
exception_level exception_level=
|
233
|
+
|
234
|
+
NOTE: Some of these method names have been re-used as
|
235
|
+
attribute readers (instead of writers). See the following
|
236
|
+
list of new methods.
|
237
|
+
|
238
|
+
New Methods
|
239
|
+
-----------
|
240
|
+
The following methods are new to Perforce P4Ruby:
|
241
|
+
|
242
|
+
api_level Returns the API compatibility level
|
243
|
+
connected? Returns true if the client is connected
|
244
|
+
maxresults Returns the current maxresults limit
|
245
|
+
maxscanrows Returns the current maxscanrows limit
|
246
|
+
maxlocktime Returns the current maxlocktime limit
|
247
|
+
maxlocktime= Sets the current maxlocktime limit
|
248
|
+
p4config_file Returns the path of the P4CONFIG file
|
249
|
+
prog Returns the name of the program (if set)
|
250
|
+
server_level Returns the (numeric) level of the server
|
251
|
+
tagged? Returns true if tagged mode is enabled
|
252
|
+
tagged= Enable or disable tagged mode
|
253
|
+
ticket_file Returns the path to the current ticket file
|
254
|
+
ticket_file= Sets the path to the current ticket file
|
255
|
+
version Returns the version of the script
|
256
|
+
version= Sets the version of the script
|
257
|
+
|
258
|
+
Renamed Methods
|
259
|
+
---------------
|
260
|
+
In Public Depot P4Ruby, many methods were assigned names
|
261
|
+
that end in a question mark (?), but the convention in
|
262
|
+
Ruby is that only methods that return booleans have names
|
263
|
+
ending with a question mark. Perforce P4Ruby follows this
|
264
|
+
convention, so the following methods in Public Depot
|
265
|
+
P4Ruby have been renamed according to the table below:
|
266
|
+
|
267
|
+
Public Depot Method Perforce P4Ruby Method
|
268
|
+
------------------- ----------------------
|
269
|
+
charset? charset
|
270
|
+
client? client
|
271
|
+
cwd? cwd
|
272
|
+
exception_level? exception_level
|
273
|
+
host? host
|
274
|
+
password? password
|
275
|
+
port? port
|
276
|
+
user? user
|
277
|
+
|
278
|
+
In addition, the following methods have been renamed for clarity
|
279
|
+
and consistency across the Perforce scripting interfaces:
|
280
|
+
|
281
|
+
Old name New name
|
282
|
+
-------- --------
|
283
|
+
api= api_level=
|
284
|
+
submit_spec run_submit
|
285
|
+
|
286
|
+
Tagged Mode and Form Parsing
|
287
|
+
----------------------------
|
288
|
+
In Public Depot P4Ruby, tagged output and form parsing mode were
|
289
|
+
off by default, but most scripts turned them on immediately. In
|
290
|
+
Perforce P4Ruby, both form parsing and tagged output are on by
|
291
|
+
default.
|
292
|
+
|
293
|
+
Form parsing cannot be explicitly disabled, but tagged output can
|
294
|
+
be turned on and off by setting p4.tagged as follows:
|
295
|
+
|
296
|
+
p4.tagged = false # Disabled
|
297
|
+
p4.tagged = true # Enabled
|
298
|
+
|
299
|
+
Because form parsing does not work when tagged output is disabled,
|
300
|
+
this method can be used to disable form parsing if necessary.
|
301
|
+
|
302
|
+
--------------------------------------------------------------------------
|
303
|
+
|
304
|
+
Key to symbols used in change notes below.
|
305
|
+
|
306
|
+
* -- requires new P4Ruby
|
307
|
+
** -- requires P4Ruby built with new P4API
|
308
|
+
*** -- requires new p4d server program
|
309
|
+
|
310
|
+
--------------------------------------------------------------------------
|
311
|
+
|
312
|
+
New functionality in 2014.2
|
313
|
+
|
314
|
+
# (SIR#28879 / P4RUBY-25)
|
315
|
+
Release P4Ruby as Gem. Until this point, the gems available
|
316
|
+
on rubygems.org were unofficial builds, and prone to fail in
|
317
|
+
non-interactive environments like bundler.
|
318
|
+
|
319
|
+
# (SIR#75097 / P4RUBY-169)
|
320
|
+
Add `enviro_file` property to P4 object, which underneath, uses the
|
321
|
+
new `SetEnviroFile`/`GetEnviroFile` mechanism from the 14.2 C++ API.
|
322
|
+
|
323
|
+
Bugs fixed in 2014.2.0.pre3
|
324
|
+
|
325
|
+
* (BUG#75096 / P4RUBY-168)
|
326
|
+
Spec mappings updated to 14.2 definitions.
|
327
|
+
|
328
|
+
* (TASK#76795 / P4RUBY-176)
|
329
|
+
Configuring pre-compiled gems for Linux and OS X, for supported
|
330
|
+
Ruby versions (2.0, 2.1, 2.2).
|
331
|
+
|
332
|
+
Bugs fixed in 2014.2.0.pre2
|
333
|
+
|
334
|
+
# (BUG#76321 / P4RUBY-171)
|
335
|
+
`gem install` fails using source gem distribution inside of a Docker
|
336
|
+
environment due to passive FTP mode not enabled early enough.
|
337
|
+
|
338
|
+
New functionality in 2014.1
|
339
|
+
|
340
|
+
# 807216 (SIR#70070) * ***
|
341
|
+
P4Ruby now supports the P4IGNORE file feature introduced
|
342
|
+
in the 2013.2 server. Three new methods have been added
|
343
|
+
to support this functionality:
|
344
|
+
|
345
|
+
P4#ignore_file - Report current file
|
346
|
+
P4#ignore_file= - Set ignore file
|
347
|
+
P4#ignored?( <file> ) - Test if <file> is
|
348
|
+
ignored
|
349
|
+
|
350
|
+
# 807216, 750979 (SIR#70093) *
|
351
|
+
P4Ruby now supports the Ruby 2.0 series of rubies.
|
352
|
+
|
353
|
+
Bugs fixed in 2013.1
|
354
|
+
|
355
|
+
#733921 (Bug#63887) *
|
356
|
+
P4Ruby no longer crashes when an exception is raised from
|
357
|
+
the block passed to P4#run_resolve.
|
358
|
+
|
359
|
+
New functionality in 2012.2
|
360
|
+
|
361
|
+
#525301 (Bug #59803) *
|
362
|
+
P4Ruby now supports Apple Mountain Lion (10.8).
|
363
|
+
|
364
|
+
#509253 (Bug #56480) *
|
365
|
+
Added P4#run_tickets() method to list local tickets.
|
366
|
+
Note that P4.run('tickets') still gives the old error
|
367
|
+
message "Must upgrade to 2004.2 p4 to access tickets."
|
368
|
+
|
369
|
+
#505980 (Bug #56514) * ** ***
|
370
|
+
Support for the new progress indicator API. P4Ruby
|
371
|
+
supplies a new progress attribute, which can take an
|
372
|
+
instance of P4::Progress class or subclass. Progress
|
373
|
+
information is currently only supported for submits and
|
374
|
+
'sync -q'. Details can be found in the documentation.
|
375
|
+
|
376
|
+
#499586 (Bug #56520) *
|
377
|
+
New convenience method P4#each_<specs>() that allows
|
378
|
+
easy iteration through some or all spec objects such as
|
379
|
+
clients or changes. Details can be found in the documentation.
|
380
|
+
|
381
|
+
Bugs fixed in 2012.2
|
382
|
+
|
383
|
+
#525097 (Bug #59786) *
|
384
|
+
Building P4Ruby with MinGW could generate the link error.
|
385
|
+
|
386
|
+
g++: unrecognized option '-static-libstdc++'
|
387
|
+
|
388
|
+
This has been fixed.
|
389
|
+
|
390
|
+
#505548 (Bug #58649) *
|
391
|
+
P4#parse_client could raise the exception "Unknown field name
|
392
|
+
'StreamAtChange'." when parsing a stream client workspace.
|
393
|
+
Internal spec definition has been updated to resolve this.
|
394
|
+
|
395
|
+
--------------------------------------------------------------------------
|
396
|
+
--------------------------------------------------------------------------
|
397
|
+
|
398
|
+
New functionality in 2012.1
|
399
|
+
|
400
|
+
#419591 (Bug #51895) * ** ***
|
401
|
+
P4Ruby supports SSL connections if compiled with SSL support.
|
402
|
+
Instructions on how to compile with SSL support can be found
|
403
|
+
at the top of this document under "Building P4Ruby from Source"
|
404
|
+
and in the documentation.
|
405
|
+
|
406
|
+
P4.identify will report the version of the OpenSSL library
|
407
|
+
used to build the Perforce C++ API (not the version P4Ruby
|
408
|
+
is linked against).
|
409
|
+
|
410
|
+
#415643 *
|
411
|
+
P4Ruby will now only build a 64-bit version of the library
|
412
|
+
on Darwin.
|
413
|
+
|
414
|
+
#413362 (Bug #51899) * **
|
415
|
+
Enable "action resolve" to support resolves of branches,
|
416
|
+
deletes and file types. The existing P4::MergeData class
|
417
|
+
has been extended and the additional attributes will be
|
418
|
+
populated for an 'action resolve'. Details of the
|
419
|
+
additional attributes can be found in the documentation.
|
420
|
+
|
421
|
+
Bugs fixed in 2012.1
|
422
|
+
|
423
|
+
#420839 (Bug #52952) *
|
424
|
+
Accessing the base_name attribute of a P4::MergeData
|
425
|
+
object resulted in a segmentation fault when resolving
|
426
|
+
binary files. This has now been fixed and all empty
|
427
|
+
fields will return Nil.
|
428
|
+
|
429
|
+
#410916
|
430
|
+
#410702 (Bug #52320) *
|
431
|
+
Exceptions thrown during P4.run_resolve are now raised
|
432
|
+
up to the user. If an exception is encountered during the
|
433
|
+
block's execution, P4Ruby will skip the remaining files.
|
434
|
+
|
435
|
+
--------------------------------------------------------------------------
|
436
|
+
--------------------------------------------------------------------------
|
437
|
+
|
438
|
+
New functionality in 2011.1
|
439
|
+
|
440
|
+
#405913 *
|
441
|
+
New method P4#messages() returns all messages from the
|
442
|
+
server as objects. Script writers can test the severity
|
443
|
+
of the messages to know if they are output messages (E_INFO),
|
444
|
+
warnings (E_WARN), or errors (E_FAILED/E_FATAL).
|
445
|
+
|
446
|
+
P4#errors() and P4#warnings still return the errors and
|
447
|
+
warnings as strings for backwards compatibility.
|
448
|
+
|
449
|
+
P4::Message objects have the following methods:
|
450
|
+
|
451
|
+
P4::Message#severity - Returns the severity of the
|
452
|
+
message, which may be one of the
|
453
|
+
following values:
|
454
|
+
|
455
|
+
E_EMPTY # nothing yet
|
456
|
+
E_INFO # something good happened
|
457
|
+
E_WARN # something not good happened
|
458
|
+
E_FAILED # user did something wrong
|
459
|
+
E_FATAL # system broken -- nothing can continue
|
460
|
+
|
461
|
+
P4::Message#generic - Returns the generic class of
|
462
|
+
the error, which may be one
|
463
|
+
of the following values:
|
464
|
+
|
465
|
+
EV_NONE # misc
|
466
|
+
EV_USAGE # request not consistent with dox
|
467
|
+
EV_UNKNOWN # using unknown entity
|
468
|
+
EV_CONTEXT # using entity in wrong context
|
469
|
+
EV_ILLEGAL # trying to do something you can't
|
470
|
+
EV_NOTYET # something must be corrected first
|
471
|
+
EV_PROTECT # protections prevented operation
|
472
|
+
EV_EMPTY # action returned empty results
|
473
|
+
EV_FAULT # inexplicable program fault
|
474
|
+
EV_CLIENT # client side program errors
|
475
|
+
EV_ADMIN # server administrative action required
|
476
|
+
EV_CONFIG # client configuration inadequate
|
477
|
+
EV_UPGRADE # client or server too old to interact
|
478
|
+
EV_COMM # communications error
|
479
|
+
EV_TOOBIG # not even Perforce can handle this much
|
480
|
+
|
481
|
+
P4::Message#msgid - Return the unique ID of the
|
482
|
+
message.
|
483
|
+
|
484
|
+
P4::Message#to_s - Convert the object to a string
|
485
|
+
|
486
|
+
P4::Message#inspect - Debugging support
|
487
|
+
|
488
|
+
|
489
|
+
#338410 (Bug #47374) *
|
490
|
+
P4Ruby supports setting values in the registry (on those
|
491
|
+
platforms that support it).
|
492
|
+
The command P4#set_env( var, val ) will set a registry
|
493
|
+
variable on platforms that support this action or raise
|
494
|
+
a P4Exception for those that don't.
|
495
|
+
The command P4#set_env( var, "" ) unsets a registry variable.
|
496
|
+
|
497
|
+
#333292 (Bug #36121) *
|
498
|
+
P4Ruby now supports Ruby 1.9
|
499
|
+
|
500
|
+
#331384 *
|
501
|
+
P4Ruby can now be compiled with the Mingw compiler using
|
502
|
+
the MinGW P4Api build.
|
503
|
+
|
504
|
+
#328203 (Bug #45861) * **
|
505
|
+
Enable streams in P4Ruby by default. With this change,
|
506
|
+
streams specific specs such as streams depots are listed.
|
507
|
+
Disable the listing of streams specific specs by either
|
508
|
+
setting the api_level to a value below 70 or by disabling
|
509
|
+
stream handling explicitly through the P4.streams attribute:
|
510
|
+
|
511
|
+
p4.streams = false
|
512
|
+
|
513
|
+
#322353 (Bug #42250) *
|
514
|
+
P4Ruby supports a callback interface by providing a
|
515
|
+
P4#handler attribute. Set P4#handler to an instance of a
|
516
|
+
subclass of P4::OutputHandler to enable callbacks.
|
517
|
+
When a handler is defined, P4Ruby will invoke the handler
|
518
|
+
for every response it receives from the Perforce Server
|
519
|
+
immediately instead of collecting all results together in
|
520
|
+
an array first. This can be used to make applications more
|
521
|
+
scalable and more responsive if large results are expected.
|
522
|
+
See the documentation for details on the OutputHandler class.
|
523
|
+
|
524
|
+
Bugs fixed in 2011.1
|
525
|
+
|
526
|
+
#405913 (Bug #43426) *
|
527
|
+
Running 'print' on a file that started with '---' would
|
528
|
+
cause an exception in Ruby. This is now fixed.
|
529
|
+
There is still an oddity when p4.track = 1 and a user runs
|
530
|
+
p4.run_print() on a file that only has lines starting with
|
531
|
+
'--- '. In that case, the output of the print is lost.
|
532
|
+
Disable tracking by setting p4.track = 0 (the default) will
|
533
|
+
solve this problem.
|
534
|
+
|
535
|
+
#405913 (Bug #41350) *
|
536
|
+
Info messages now shown in P4#Messages.
|
537
|
+
|
538
|
+
#385159 (Bug #49324) **
|
539
|
+
On Windows Vista, Windows 7, or Windows 2008, a client running as
|
540
|
+
Administrator would fail to properly process file names in
|
541
|
+
non-ASCII character sets (such as Shift-JIS).
|
542
|
+
|
543
|
+
#338903 (Bug #44589) *
|
544
|
+
Extra dot at the end of the extracted directory path has been
|
545
|
+
removed.
|
546
|
+
|
547
|
+
#338437 (Bug #39580) *
|
548
|
+
P4#identify() reports the platform on AMD64 as X86_64
|
549
|
+
in line with all other Perforce products.
|
550
|
+
|
551
|
+
#332453 *
|
552
|
+
Updated the stored spec templates for client, change, group,
|
553
|
+
spec and user. Added spec template for new spec type
|
554
|
+
streams. These are required, for example, for form-triggers
|
555
|
+
that do not connect to the server first.
|
556
|
+
|
557
|
+
#329351 (Bug #41271) *
|
558
|
+
Include 'extraTag' fields in P4::Spec objects
|
559
|
+
|
560
|
+
#328578 (Bug #39264) *
|
561
|
+
P4#identify() now reports P4Ruby as P4RUBY in line with all
|
562
|
+
other Perforce products. It will also include the build
|
563
|
+
number of the Perforce C/C++ API that it is built with.
|
564
|
+
|
565
|
+
--------------------------------------------------------------------------
|
566
|
+
--------------------------------------------------------------------------
|
567
|
+
|
568
|
+
New functionality in 2010.2
|
569
|
+
|
570
|
+
#260859 *
|
571
|
+
Added new SetTrack() and GetTrack() methods.
|
572
|
+
For more details about server performance tracking see:
|
573
|
+
http://kb.perforce.com/article/883
|
574
|
+
|
575
|
+
#255945 *
|
576
|
+
#255949 *
|
577
|
+
#269012 *
|
578
|
+
New method P4#messages() returns all messages from the
|
579
|
+
server as objects. Script writers can test the severity
|
580
|
+
of the messages to know if they are output messages (E_INFO),
|
581
|
+
warnings (E_WARN), or errors (E_FAILED/E_FATAL).
|
582
|
+
|
583
|
+
P4#errors() and P4#warnings still return the errors and
|
584
|
+
warnings as strings for backwards compatibility.
|
585
|
+
|
586
|
+
P4::Message objects have the following methods:
|
587
|
+
|
588
|
+
P4::Message#severity - Returns the severity of the
|
589
|
+
message, which may be one of the
|
590
|
+
following values:
|
591
|
+
|
592
|
+
E_EMPTY # nothing yet
|
593
|
+
E_INFO # something good happened
|
594
|
+
E_WARN # something not good happened
|
595
|
+
E_FAILED # user did something wrong
|
596
|
+
E_FATAL # system broken -- nothing can continue
|
597
|
+
|
598
|
+
P4::Message#generic - Returns the generic class of
|
599
|
+
the error, which may be one
|
600
|
+
of the following values:
|
601
|
+
|
602
|
+
EV_NONE # misc
|
603
|
+
EV_USAGE # request not consistent with dox
|
604
|
+
EV_UNKNOWN # using unknown entity
|
605
|
+
EV_CONTEXT # using entity in wrong context
|
606
|
+
EV_ILLEGAL # trying to do something you can't
|
607
|
+
EV_NOTYET # something must be corrected first
|
608
|
+
EV_PROTECT # protections prevented operation
|
609
|
+
EV_EMPTY # action returned empty results
|
610
|
+
EV_FAULT # inexplicable program fault
|
611
|
+
EV_CLIENT # client side program errors
|
612
|
+
EV_ADMIN # server administrative action required
|
613
|
+
EV_CONFIG # client configuration inadequate
|
614
|
+
EV_UPGRADE # client or server too old to interact
|
615
|
+
EV_COMM # communications error
|
616
|
+
EV_TOOBIG # not even Perforce can handle this much
|
617
|
+
|
618
|
+
P4::Message#msgid - Return the unique ID of the
|
619
|
+
message.
|
620
|
+
|
621
|
+
P4::Message#to_s - Convert the object to a string
|
622
|
+
|
623
|
+
P4::Message#inspect - Debugging support
|
624
|
+
|
625
|
+
Bugs fixed in 2010.2
|
626
|
+
|
627
|
+
#287185 (Bug #43426)
|
628
|
+
Running 'print' on a file that started with '---' would
|
629
|
+
cause an exception in Ruby. This is now fixed.
|
630
|
+
There is still an oddity when p4.track = 1 and a user runs
|
631
|
+
p4.run_print() on a file that only has lines starting with
|
632
|
+
'--- '. In that case, the output of the print is lost.
|
633
|
+
Disable tracking by setting p4.track = 0 (the default) will
|
634
|
+
solve this problem.
|
635
|
+
|
636
|
+
--------------------------------------------------------------------------
|
637
|
+
--------------------------------------------------------------------------
|
638
|
+
|
639
|
+
New functionality in 2010.1
|
640
|
+
|
641
|
+
#232984 *
|
642
|
+
Removed old Ruby 1.6 compatibility code that was no longer
|
643
|
+
required. This paves the way for Ruby 1.9 compatibility.
|
644
|
+
|
645
|
+
#230644 *
|
646
|
+
It's now unnecessary to run a command before calling the
|
647
|
+
following methods:
|
648
|
+
|
649
|
+
P4#server_level
|
650
|
+
P4#server_case_sensitive?
|
651
|
+
P4#server_unicode?
|
652
|
+
|
653
|
+
If no command has been run, P4Ruby will automatically run a
|
654
|
+
'p4 info' in order to gather the required information.
|
655
|
+
|
656
|
+
#230191 *
|
657
|
+
Added new P4#server_unicode? method that allows script
|
658
|
+
writers to test whether or not a Perforce Server is in
|
659
|
+
internationalized (unicode) mode. At least one Perforce
|
660
|
+
command must have been executed against the server before
|
661
|
+
this method can be called.
|
662
|
+
|
663
|
+
#230190 *
|
664
|
+
Added new P4::VERSION, P4::OS, and P4::PATCHLEVEL constants
|
665
|
+
so that script writers can test the installation of P4Ruby
|
666
|
+
without having to parse the output of P4::Identify()
|
667
|
+
|
668
|
+
Bugs fixed in 2010.1
|
669
|
+
|
670
|
+
(none)
|
671
|
+
|
672
|
+
--------------------------------------------------------------------------
|
673
|
+
--------------------------------------------------------------------------
|
674
|
+
|
675
|
+
New functionality in 2009.2
|
676
|
+
|
677
|
+
#214454 (Bug #32916) *
|
678
|
+
P4#port= now raises a P4Exception if called after P4#connect().
|
679
|
+
|
680
|
+
#214449 (Bug #35416) *
|
681
|
+
Added a P4#server_case_sensitive? method that enables scripts
|
682
|
+
to detect whether the server is case-sensitive. Cannot be
|
683
|
+
called until a command has been issued to the server.
|
684
|
+
|
685
|
+
Bugs fixed in 2009.2
|
686
|
+
|
687
|
+
#214445,214999 (Bug #35410) *
|
688
|
+
P4Ruby now correctly tracks disconnects from the server.
|
689
|
+
|
690
|
+
#222727 (Bug #36568) *
|
691
|
+
The Map class removed '-' and '+' from the path if the
|
692
|
+
form Map.insert(lhs, rhs) was used, even if these characters
|
693
|
+
did not appear at the beginning of the path.
|
694
|
+
Now dashes and pluses are preserved within the path.
|
695
|
+
|
696
|
+
--------------------------------------------------------------------------
|
697
|
+
--------------------------------------------------------------------------
|
698
|
+
|
699
|
+
New functionality in 2009.1
|
700
|
+
|
701
|
+
#191900 (Bug #26729) *
|
702
|
+
A new method:
|
703
|
+
|
704
|
+
P4#tagged( aBool ) { block }
|
705
|
+
|
706
|
+
has been added to the P4 class. This method temporarily
|
707
|
+
toggles the use of tagged output for the duration of
|
708
|
+
the block and resets it when the block terminates.
|
709
|
+
|
710
|
+
Bugs fixed in 2009.1
|
711
|
+
|
712
|
+
#191889 (Bug #29911) *
|
713
|
+
Calling P4#run_resolve() or P4#run( 'resolve' ) without
|
714
|
+
a block or a previous call to P4#input no longer causes an
|
715
|
+
infinite loop.
|
716
|
+
|
717
|
+
#191623,191627 (Bug #32918) *
|
718
|
+
P4Ruby now correctly parses jobs when the jobspec contains
|
719
|
+
field names ending in numbers.
|
720
|
+
|
721
|
+
--------------------------------------------------------------------------
|
722
|
+
--------------------------------------------------------------------------
|
723
|
+
|
724
|
+
New functionality in 2008.2
|
725
|
+
|
726
|
+
#162422 (Bug #30364) *
|
727
|
+
#166158 *
|
728
|
+
A new class, P4::Map, enables users to
|
729
|
+
create and use Perforce mappings without requiring
|
730
|
+
a connection to a server. Methods in the P4::Map class are:
|
731
|
+
|
732
|
+
P4::Map.new Constructor
|
733
|
+
P4::Map.join Join two maps to create a third
|
734
|
+
P4::Map#clear Empty a map
|
735
|
+
P4::Map#count Return the number of entries
|
736
|
+
P4::Map#empty? Tests whether a map object is empty
|
737
|
+
P4::Map#insert Inserts an entry into the map
|
738
|
+
P4::Map#translate Translate a string through a map
|
739
|
+
P4::Map#includes? Tests whether a path is mapped
|
740
|
+
P4::Map#reverse Swap left and right sides of the mapping
|
741
|
+
P4::Map#lhs Returns the left side as an array
|
742
|
+
P4::Map#rhs Returns the right side as an array
|
743
|
+
P4::Map#to_a Returns the map as an array
|
744
|
+
|
745
|
+
Bugs fixed in 2008.2
|
746
|
+
|
747
|
+
#169159 (Bug #29935, Bug #31096) *
|
748
|
+
#165338 *
|
749
|
+
P4Ruby now correctly loads the value of P4CHARSET from the
|
750
|
+
environment.
|
751
|
+
|
752
|
+
--------------------------------------------------------------------------
|
753
|
+
--------------------------------------------------------------------------
|
754
|
+
|
755
|
+
New functionality in 2008.1
|
756
|
+
|
757
|
+
#152356 (Bug #29022) *
|
758
|
+
A new method 'P4#env( var )' method has been added to
|
759
|
+
the P4 class. This instance method enables the caller
|
760
|
+
to interrogate the Perforce environment, including
|
761
|
+
reading Perforce variables from P4CONFIG files and,
|
762
|
+
on Windows, the registry. P4#cwd= now loads any
|
763
|
+
P4CONFIG file settings that are appropriate to the
|
764
|
+
new working directory.
|
765
|
+
|
766
|
+
#153005 (Bug #29308) *
|
767
|
+
P4Ruby now supports Mac OS X 10.5.
|
768
|
+
|
769
|
+
--------------------------------------------------------------------------
|
770
|
+
--------------------------------------------------------------------------
|
771
|
+
|
772
|
+
Bugs fixed in 2007.3
|
773
|
+
|
774
|
+
#151167 (Bug #28774) *
|
775
|
+
The Makefile generated on some Linux platforms (notably
|
776
|
+
Ubuntu 7.10) was not correct, and attempted to link P4Ruby
|
777
|
+
using 'cc' instead of 'c++', causing an 'undefined symbol'
|
778
|
+
error (typically '_ZTVN10__cxxabiv120__si_class_type_infoE') ,
|
779
|
+
when attempting to use P4Ruby. This problem has been corrected.
|
780
|
+
|
781
|
+
#150577 (Bug #28704) *
|
782
|
+
The presence of deleted revisions in a file's history
|
783
|
+
might lead to incorrect fileSize and digest
|
784
|
+
attributes for other revisions in the output of
|
785
|
+
P4#run_filelog. This problem has been corrected.
|
786
|
+
|
787
|
+
#150576 (Bug #28773) *
|
788
|
+
P4::Revision#filesize() always returned nil. This
|
789
|
+
problem has been corrected.
|