p4ruby 2015.2.1265122-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ccd9b3ed1603e9d04fba5d74197b698dc4876db6
4
+ data.tar.gz: 9ec57ef08d1151dec7294c71883d204819eab1f3
5
+ SHA512:
6
+ metadata.gz: 11dda1e3a333edc5002c0f39302bd3b00025e496d836a7cf345ae0e5f68eb595afc864df0bc468ae858e3944b73724edd0477f75f8b1824e3af7a604d17b06f2
7
+ data.tar.gz: 5975843525e1744a435673ebdd3ae2276366fc76049f2f30f950ed6d9aabd018d4e661fab60ce1ee06f33cb99e4e1fae6f886378753c893a38a181ccc39c4ba5
data/LICENSE.txt ADDED
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2001-2014, Perforce Software, Inc. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are met:
5
+
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+
9
+ 2. Redistributions in binary form must reproduce the above copyright
10
+ notice, this list of conditions and the following disclaimer in the
11
+ documentation and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
16
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE
17
+ SOFTWARE, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
22
+ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
23
+ THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
24
+ DAMAGE.
data/README.md ADDED
@@ -0,0 +1,866 @@
1
+ # Release Notes for P4Ruby, Perforce's script API for Ruby
2
+
3
+ Version 2015.2
4
+
5
+ ## Introduction
6
+
7
+ P4Ruby is a native Ruby gem that allows you to run Perforce commands from
8
+ Ruby applications, and retrieve the results in a Ruby-friendly format.
9
+
10
+ P4Ruby is intended to work against a corresponding version of the Perforce
11
+ C++ API, e.g., P4Ruby 2015.2 will be compiled using a 2015.2 version
12
+ of the P4API. You can always install P4Ruby specifying a specific version of
13
+ the P4API.
14
+
15
+ To determine the version of your P4Ruby, and which version of the
16
+ P4API it has been built with, issue the following command:
17
+
18
+ ruby -rP4 -e "puts P4.identify"
19
+
20
+ --------------------------------------------------------------------------
21
+
22
+ ### Installing P4Ruby
23
+
24
+ As of 2014.2, the recommended mechanism for installing P4Ruby is via
25
+ rubygems.org.
26
+
27
+ Before installing, please take care that any older version of P4Ruby that
28
+ may have been installed outside of the Gem process is removed from your
29
+ gempath. The older installation process can not be easily removed and may
30
+ conflict with a gem-based install. Make sure that both P4.rb and P4.so (or
31
+ P4.bundle on OS X) are not available within the load path of Ruby. You can
32
+ use the `puts $:` command in `irb` to determine your current load path.
33
+
34
+ Outside of Windows, p4ruby gem installs must be compiled locally against
35
+ your installation of Ruby. If you can build the core Ruby distribution
36
+ locally, you likely can install P4Ruby without incident. On Windows,
37
+ precompiled gems are available, which already include the P4API and OpenSSL.
38
+
39
+ The main command to install p4ruby is via gem or bundler. (When using the
40
+ default system rubies from OS X or the CentOS Software Collections Library,
41
+ see 'Problems Specifying P4API' below.)
42
+
43
+ gem install p4ruby
44
+
45
+ This will download a corresponding version of the p4api from ftp.perforce.com,
46
+ and will automatically include the openssl version you have locally.
47
+
48
+ If you have downloaded the p4api and unpacked it, you can specify it using the
49
+ `--with-p4api-dir` option.
50
+
51
+ gem install p4ruby -- --with-p4api-dir=DIR
52
+
53
+ In this case, the DIR above is the path to the C++ API distribution that
54
+ should match the major and minor version of P4Ruby. If you omit the
55
+ --with-p4api-dir option, the gem will attempt to download a version of the
56
+ API itself from ftp.perforce.com.
57
+
58
+ Alternatively, you can use Bundler (http://bundler.io). In your Gemfile,
59
+ specify
60
+
61
+ gem 'p4ruby', '~> 2015.2'
62
+
63
+ And then execute:
64
+
65
+ bundle --with-p4api-dir=DIR
66
+
67
+ #### Problems Specifying P4API
68
+
69
+ On older Ruby platforms, such as the default OS X or ruby193 CentOS
70
+ distributions, issues can arise when specifying the P4API directly via
71
+ the command line.
72
+
73
+ In these cases, you may need to indicate the include and lib directories
74
+ directly:
75
+
76
+ gem install p4ruby -- --with-p4api-dir=DIR \
77
+ --with-p4-api-include=DIR/include \
78
+ --with-p4-api-lib=DIR/lib
79
+
80
+ An alternative is to specify the P4API directory using the `p4api_dir`
81
+ environment variable.
82
+
83
+
84
+ --------------------------------------------------------------------------
85
+
86
+ ### Building P4Ruby from Source on Linux or OS X
87
+
88
+ 1. Download the Perforce C++ API from the Perforce FTP site at
89
+ "ftp://ftp.perforce.com/perforce". The API archive is located
90
+ in release and platform-specific subdirectories and is named
91
+ "p4api.tgz".
92
+
93
+ __IMPORTANT__: Mac OS X users MUST use the 'darwin' variant
94
+ of the Perforce API. Using the 'macos' variant
95
+ does not work.
96
+
97
+ Note: 32-bit builds of P4Ruby require a 32-bit version of the
98
+ C++ API and a 32-bit version of Ruby. 64-bit builds of
99
+ P4Ruby require a 64-bit version of the C++ API and a
100
+ 64-bit version of Ruby.
101
+
102
+ Unzip the archive into an empty directory.
103
+
104
+ 2. Extract the P4Ruby API archive into a new, empty directory.
105
+
106
+ 3. In the p4ruby source directory, install dependencies:
107
+
108
+ bundle install
109
+
110
+ 3. In the p4ruby source directory, build the gem:
111
+
112
+ p4api_dir=<absolute path to Perforce C++ API> rake compile
113
+
114
+ 4. Test your distribution, which relies on a locally installed p4d.
115
+
116
+ rake test
117
+
118
+ If `p4d` is not available on your path, indicate it via the `P4D_BIN`
119
+ environment variable before running `rake test`.
120
+
121
+ 5. Install P4Ruby into your local gem cache:
122
+
123
+ rake install
124
+
125
+ #### SSL support
126
+
127
+ Perforce Server 2012.1 and later supports SSL connections and the
128
+ C++ API has been compiled with this support. For applications that
129
+ do not requireSSL support the C++ API provides a stub library
130
+ (libp4sslstub.*) to satisfy the linker requirements.
131
+
132
+ If the P4Ruby build detects that OpenSSL is available, it will be
133
+ included by default. To disable, execute the gem command using
134
+ --without-ssllib. If you want to use libraries deployed to nonstandard
135
+ paths, you will have to alter ext/P4/extconf.rb and include the
136
+ dir_config() directives appropriate for your system.
137
+
138
+ --------------------------------------------------------------------------
139
+
140
+ ### Compatibility Statements
141
+
142
+ #### Server Compatibility
143
+
144
+ You can use any release of P4Ruby with any release of the
145
+ Perforce server later than 2001.1
146
+
147
+ You should use a version of P4Ruby built against a corresponding version
148
+ of the P4API that matches your Perforce server version. Since 2014.2,
149
+ you should try to use the same major and minor variation of P4Ruby as
150
+ used by the Perforce server. Ergo, against Perforce server version 2015.2,
151
+ you would want a P4Ruby version that starts with 2015.2.
152
+
153
+ #### API Compatibility
154
+
155
+ The 2015.2 release of P4Ruby supports the 2015.2 Perforce API.
156
+ Older releases might work but are not supported.
157
+
158
+ #### Ruby Compatibility
159
+
160
+ The 2015.2 release of P4Ruby is supported by installing the gem
161
+ with Ruby MRI releases 2.0, 2.1, and 2.2 with shared library
162
+ support.
163
+
164
+ For detailed compatibility, please check the following table:
165
+
166
+ Ruby Release | P4Ruby Release
167
+ ===================================
168
+ 1.6 | up to 2009.2 (unsupported)
169
+ 1.8 | 2007.3 or later (unsupported)
170
+ 1.9 | 2011.1 or later
171
+ 2.0 | 2014.1 or later
172
+ 2.1 | 2014.2 or later
173
+ 2.2 | 2014.2 or later
174
+
175
+ It is recommended that you use a Ruby distribution that can deploy
176
+ native gems easily, which, outside of Windows means obtaining a source
177
+ distribution of ruby and building it locally. This is easily done via RVM,
178
+ and can be installed system-wide, with other features (like wrappers) that
179
+ allow you to update the local installation of Ruby as security patches are
180
+ released. If using RVM, be sure to use --disable-binary when installing
181
+ your version of Ruby, to avoid any precompiled distributions that may not
182
+ have shared library support configured, which is needed for Ruby
183
+ extensions.
184
+
185
+ In general, Ruby VMs installed via package managers are not officially
186
+ coordinated with the MRI releases available on ruby-lang.org.
187
+
188
+ We do verify that p4ruby works with Ruby 1.9 on Debian (and Ubuntu), and
189
+ on CentOS 6 using the Software Collections Library. These are considered
190
+ "stable" distributions, and do receive security updates.
191
+
192
+ Other versions of Ruby, such as the default distribution of OS X may not
193
+ work. The default OS X Ruby is infrequently updated by Apple, and is known
194
+ to contain issues that do not seem to be patched.
195
+
196
+ #### OpenSSL Compatibility
197
+
198
+ To build P4Ruby with encrypted communication support, you must
199
+ use the version of OpenSSL that Perforce C/C++ API has been
200
+ built against. Running P4Ruby linked to an older library will
201
+ fail with the error:
202
+
203
+ "SSL library must be at least version 1.0.1."
204
+
205
+ The 2015.2 release of P4Ruby is supported with OpenSSL 1.0.1
206
+
207
+ For detailed compatibility, please check the following table:
208
+
209
+ Perforce C/C++ API Version | OpenSSL Release
210
+ ============================================
211
+ 2012.1 | 1.0.0
212
+ 2012.2 | 1.0.1g+
213
+ 2014.1 | 1.0.1g+
214
+ 2014.2 | 1.0.1i+
215
+ 2015.1 | 1.0.1i+
216
+ 2015.2 | 1.0.1i+
217
+
218
+
219
+ #### Platform Compatibility
220
+
221
+ Note: As of 2012.1, a universal build of the Perforce C/C++
222
+ API is no longer available for Darwin. P4Ruby is now
223
+ a 64-bit only library on Darwin and must be built with
224
+ a 64-bit version of the Perforce C/C++ API for Darwin.
225
+ This has been tested with a universal build of Ruby and
226
+ is known to work.
227
+
228
+ #### Compiler Compatibility
229
+
230
+ To build P4Ruby from source, you must use a version of Ruby that
231
+ has been compiled with the same compiler used to build the
232
+ Perforce C++ API: for most platforms, use gcc/g++.
233
+
234
+ Attempting to use a different compiler or a different version
235
+ of the compiler causes linker errors due to differences in name
236
+ handling between compilers.
237
+
238
+ #### Compatibility with Previous Releases
239
+
240
+ Unless otherwise stated below, the 2015.2 release of P4Ruby is
241
+ compatible with previous releases from Perforce Software.
242
+
243
+ #### Known Limitations
244
+
245
+ The Perforce client-server protocol is not designed to support
246
+ multiple concurrent queries over the same connection. For this
247
+ reason, multi-threaded applications using the C++ API or the
248
+ script APIs (P4Perl, P4Ruby, etc.) should ensure that a
249
+ separate connection is used for each thread or that only one
250
+ thread may use a shared connection at a time.
251
+
252
+
253
+ ## Deleted Methods
254
+
255
+ The following methods have been deleted from the `P4` class and
256
+ are no longer available:
257
+
258
+ - `output` The output is returned by the `run*` methods
259
+ - `parse_forms` Form parsing is now always on
260
+ - `tagged` See tagged? and tagged= below.
261
+
262
+ ## Tagged Mode and Form Parsing
263
+
264
+ In P4Ruby, both form parsing and tagged output are on by
265
+ default.
266
+
267
+ Form parsing cannot be explicitly disabled, but tagged output can
268
+ be turned on and off by setting p4.tagged as follows:
269
+
270
+ p4.tagged = false # Disabled
271
+ p4.tagged = true # Enabled
272
+
273
+ Because form parsing does not work when tagged output is disabled,
274
+ this method can be used to disable form parsing if necessary.
275
+
276
+ --------------------------------------------------------------------------
277
+ ## Change overview
278
+
279
+ This document lists all user-visible changes to P4Ruby
280
+ from release 2007.3, the first supported P4Ruby release.
281
+
282
+ Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547.
283
+ YYYY is the year; R is the release of that year; CCCCC is the
284
+ bug fix change level. Each bug fix in these release notes is
285
+ marked by its change number. Any build includes (1) all bug fixes
286
+ of all previous releases and (2) all bug fixes of the current
287
+ release up to the bug fix change level.
288
+
289
+ --------------------------------------------------------------------------
290
+
291
+ New functionality in 2015.2
292
+
293
+ - (SIR#78548 / P4RUBY-193)
294
+
295
+ Release native P4Ruby gems for x86-mingw32 and x64-mingw32.
296
+ Until this point, the only source gems have been available. These gems
297
+ will allow Windows users for 32 or 64-bit Ruby 2.0, 2.1 or 2.2 to easily
298
+ install P4Ruby.
299
+
300
+ Changes in both 2015.2.0.pre0 and 2015.1.0
301
+
302
+ - Applied change to P4ClientApi::SetCharset, that if it is set to "none", then
303
+ we will ignore the setting. The P4API enviro file handling seems to always
304
+ create this setting and apply it in various circumstances.
305
+
306
+ Changes in 2015.1.0
307
+
308
+ - Updated spec mappings in specmgr.cpp to be up to date with the 2015.1 P4API
309
+
310
+ - Allow the P4_BIN environment variable to be set to point to a p4d for the
311
+ testing library (used by the `rake test` task).
312
+
313
+ New functionality in 2014.2
314
+
315
+ - (SIR#28879 / P4RUBY-25)
316
+
317
+ Release P4Ruby as Gem. Until this point, the gems available
318
+ on rubygems.org were unofficial builds, and prone to fail in
319
+ non-interactive environments like bundler.
320
+
321
+ - (SIR#75097 / P4RUBY-169)
322
+
323
+ Add `enviro_file` property to P4 object, which underneath, uses the
324
+ new `SetEnviroFile`/`GetEnviroFile` mechanism from the 14.2 C++ API.
325
+
326
+ Changes in 2014.2.0.pre6
327
+
328
+ - Documented workarounds to installation failures on the OS X default Ruby
329
+ installation.
330
+
331
+ Changes in 2014.2.0.pre5
332
+
333
+ - Fixed an issue where using the --with-p4api-dir option to gem install
334
+ would not actually set up the include and lib compilation directory
335
+ correctly.
336
+
337
+ - No longer distributing precompiled builds for linux or OS X due to
338
+ inadequate information from gem to match the Ruby distribution correctly.
339
+
340
+ - No longer embedding the C++ P4API to keep the total file size down to
341
+ allow the gem to be distributed via RubyGems.org.
342
+
343
+ - Changed logic to call p4.charset=nil if charset is already nil or resolves
344
+ to 'none'. Internally, this will trigger a call to ClientApi::SetTrans(0),
345
+ which should disable character set autodetection.
346
+
347
+ Bugs fixed in 2014.2.0.pre4
348
+
349
+ - (BUG#77207 / P4RUBY-176)
350
+ If the user has specified 'P4CHARSET=none' in a configuration file, or
351
+ has not set p4.charset='auto' (and it's default value was initialized to
352
+ 'none' by the C++ API), automatically disable character set detection.
353
+ This can cause the API to break when connecting to non-unicode servers
354
+ even though it appears to be configured to not be a unicode client.
355
+
356
+ - The default C++ API version should be included with the gem source, to
357
+ avoid calls to ftp.perforce.com.
358
+
359
+ Bugs fixed in 2014.2.0.pre3
360
+
361
+ - (BUG#75096 / P4RUBY-168)
362
+ Spec mappings updated to 14.2 definitions.
363
+
364
+ - (TASK#76795 / P4RUBY-176)
365
+ Configuring pre-compiled gems for Linux and OS X, for supported
366
+ Ruby versions (2.0, 2.1, 2.2).
367
+
368
+ Bugs fixed in 2014.2.0.pre2
369
+
370
+ - (BUG#76321 / P4RUBY-171)
371
+ `gem install` fails using source gem distribution inside of a Docker
372
+ environment due to passive FTP mode not enabled early enough.
373
+
374
+ --------------------------------------------------------------------------
375
+
376
+ New functionality in 2014.1
377
+
378
+ - 807216 (SIR#70070)
379
+
380
+ P4Ruby now supports the P4IGNORE file feature introduced
381
+ in the 2013.2 server. Three new methods have been added
382
+ to support this functionality:
383
+
384
+ P4#ignore_file - Report current file
385
+ P4#ignore_file= - Set ignore file
386
+ P4#ignored?( <file> ) - Test if <file> is
387
+ ignored
388
+
389
+ - 807216, 750979 (SIR#70093)
390
+
391
+ P4Ruby now supports the Ruby 2.0 series of rubies.
392
+
393
+ --------------------------------------------------------------------------
394
+
395
+ Bugs fixed in 2013.1
396
+
397
+ - 733921 (Bug#63887)
398
+
399
+ P4Ruby no longer crashes when an exception is raised from
400
+ the block passed to P4#run_resolve.
401
+
402
+ --------------------------------------------------------------------------
403
+
404
+ New functionality in 2012.2
405
+
406
+ - 525301 (Bug #59803)
407
+
408
+ P4Ruby now supports Apple Mountain Lion (10.8).
409
+
410
+ - 509253 (Bug #56480)
411
+
412
+ Added P4#run_tickets() method to list local tickets.
413
+ Note that P4.run('tickets') still gives the old error
414
+ message "Must upgrade to 2004.2 p4 to access tickets."
415
+
416
+ - 505980 (Bug #56514)
417
+
418
+ Support for the new progress indicator API. P4Ruby
419
+ supplies a new progress attribute, which can take an
420
+ instance of P4::Progress class or subclass. Progress
421
+ information is currently only supported for submits and
422
+ 'sync -q'. Details can be found in the documentation.
423
+
424
+ - 499586 (Bug #56520)
425
+
426
+ New convenience method P4#each_<specs>() that allows
427
+ easy iteration through some or all spec objects such as
428
+ clients or changes. Details can be found in the documentation.
429
+
430
+ Bugs fixed in 2012.2
431
+
432
+ - 525097 (Bug #59786)
433
+
434
+ Building P4Ruby with MinGW could generate the link error.
435
+
436
+ g++: unrecognized option '-static-libstdc++'
437
+
438
+ This has been fixed.
439
+
440
+ - 505548 (Bug #58649)
441
+
442
+ P4#parse_client could raise the exception "Unknown field name
443
+ 'StreamAtChange'." when parsing a stream client workspace.
444
+ Internal spec definition has been updated to resolve this.
445
+
446
+ --------------------------------------------------------------------------
447
+
448
+ New functionality in 2012.1
449
+
450
+ - 419591 (Bug #51895)
451
+
452
+ P4Ruby supports SSL connections if compiled with SSL support.
453
+ Instructions on how to compile with SSL support can be found
454
+ at the top of this document under "Building P4Ruby from Source"
455
+ and in the documentation.
456
+
457
+ P4.identify will report the version of the OpenSSL library
458
+ used to build the Perforce C++ API (not the version P4Ruby
459
+ is linked against).
460
+
461
+ - 415643
462
+
463
+ P4Ruby will now only build a 64-bit version of the library
464
+ on Darwin.
465
+
466
+ - 413362 (Bug #51899)
467
+
468
+ Enable "action resolve" to support resolves of branches,
469
+ deletes and file types. The existing P4::MergeData class
470
+ has been extended and the additional attributes will be
471
+ populated for an 'action resolve'. Details of the
472
+ additional attributes can be found in the documentation.
473
+
474
+ Bugs fixed in 2012.1
475
+
476
+ - 420839 (Bug #52952)
477
+
478
+ Accessing the base_name attribute of a P4::MergeData
479
+ object resulted in a segmentation fault when resolving
480
+ binary files. This has now been fixed and all empty
481
+ fields will return Nil.
482
+
483
+ - 410916, 410702 (Bug #52320)
484
+
485
+ Exceptions thrown during P4.run_resolve are now raised
486
+ up to the user. If an exception is encountered during the
487
+ block's execution, P4Ruby will skip the remaining files.
488
+
489
+ --------------------------------------------------------------------------
490
+
491
+ New functionality in 2011.1
492
+
493
+ - 405913
494
+
495
+ New method P4#messages() returns all messages from the
496
+ server as objects. Script writers can test the severity
497
+ of the messages to know if they are output messages (E_INFO),
498
+ warnings (E_WARN), or errors (E_FAILED/E_FATAL).
499
+
500
+ P4#errors() and P4#warnings still return the errors and
501
+ warnings as strings for backwards compatibility.
502
+
503
+ P4::Message objects have the following methods:
504
+
505
+ P4::Message#severity - Returns the severity of the
506
+ message, which may be one of the
507
+ following values:
508
+
509
+ E_EMPTY # nothing yet
510
+ E_INFO # something good happened
511
+ E_WARN # something not good happened
512
+ E_FAILED # user did something wrong
513
+ E_FATAL # system broken -- nothing can continue
514
+
515
+ P4::Message#generic - Returns the generic class of
516
+ the error, which may be one
517
+ of the following values:
518
+
519
+ EV_NONE # misc
520
+ EV_USAGE # request not consistent with dox
521
+ EV_UNKNOWN # using unknown entity
522
+ EV_CONTEXT # using entity in wrong context
523
+ EV_ILLEGAL # trying to do something you can't
524
+ EV_NOTYET # something must be corrected first
525
+ EV_PROTECT # protections prevented operation
526
+ EV_EMPTY # action returned empty results
527
+ EV_FAULT # inexplicable program fault
528
+ EV_CLIENT # client side program errors
529
+ EV_ADMIN # server administrative action required
530
+ EV_CONFIG # client configuration inadequate
531
+ EV_UPGRADE # client or server too old to interact
532
+ EV_COMM # communications error
533
+ EV_TOOBIG # not even Perforce can handle this much
534
+
535
+ P4::Message#msgid - Return the unique ID of the
536
+ message.
537
+
538
+ P4::Message#to_s - Convert the object to a string
539
+
540
+ P4::Message#inspect - Debugging support
541
+
542
+
543
+ - 338410 (Bug #47374)
544
+
545
+ P4Ruby supports setting values in the registry (on those
546
+ platforms that support it).
547
+
548
+ The command P4#set_env( var, val ) will set a registry
549
+ variable on platforms that support this action or raise
550
+ a P4Exception for those that don't.
551
+
552
+ The command P4#set_env( var, "" ) unsets a registry variable.
553
+
554
+ - 333292 (Bug #36121)
555
+
556
+ P4Ruby now supports Ruby 1.9
557
+
558
+ - 331384
559
+
560
+ P4Ruby can now be compiled with the Mingw compiler using
561
+ the MinGW P4Api build.
562
+
563
+ - 328203 (Bug #45861)
564
+
565
+ Enable streams in P4Ruby by default. With this change,
566
+ streams specific specs such as streams depots are listed.
567
+ Disable the listing of streams specific specs by either
568
+ setting the api_level to a value below 70 or by disabling
569
+ stream handling explicitly through the P4.streams attribute:
570
+
571
+ p4.streams = false
572
+
573
+ - 322353 (Bug #42250)
574
+
575
+ P4Ruby supports a callback interface by providing a
576
+ P4#handler attribute. Set P4#handler to an instance of a
577
+ subclass of P4::OutputHandler to enable callbacks.
578
+ When a handler is defined, P4Ruby will invoke the handler
579
+ for every response it receives from the Perforce Server
580
+ immediately instead of collecting all results together in
581
+ an array first. This can be used to make applications more
582
+ scalable and more responsive if large results are expected.
583
+ See the documentation for details on the OutputHandler class.
584
+
585
+ Bugs fixed in 2011.1
586
+
587
+ - 405913 (Bug #43426)
588
+
589
+ Running 'print' on a file that started with '---' would
590
+ cause an exception in Ruby. This is now fixed.
591
+
592
+ There is still an oddity when p4.track = 1 and a user runs
593
+ p4.run_print() on a file that only has lines starting with
594
+ '--- '. In that case, the output of the print is lost.
595
+
596
+ Disable tracking by setting p4.track = 0 (the default) will
597
+ solve this problem.
598
+
599
+ - 405913 (Bug #41350)
600
+
601
+ Info messages now shown in P4#Messages.
602
+
603
+ - 385159 (Bug #49324)
604
+
605
+ On Windows Vista, Windows 7, or Windows 2008, a client running as
606
+ Administrator would fail to properly process file names in
607
+ non-ASCII character sets (such as Shift-JIS).
608
+
609
+ - 338903 (Bug #44589)
610
+
611
+ Extra dot at the end of the extracted directory path has been
612
+ removed.
613
+
614
+ - 338437 (Bug #39580)
615
+
616
+ P4#identify() reports the platform on AMD64 as X86_64
617
+ in line with all other Perforce products.
618
+
619
+ - 332453
620
+
621
+ Updated the stored spec templates for client, change, group,
622
+ spec and user. Added spec template for new spec type
623
+ streams. These are required, for example, for form-triggers
624
+ that do not connect to the server first.
625
+
626
+ - 329351 (Bug #41271)
627
+
628
+ Include 'extraTag' fields in P4::Spec objects
629
+
630
+ - 328578 (Bug #39264)
631
+
632
+ P4#identify() now reports P4Ruby as P4RUBY in line with all
633
+ other Perforce products. It will also include the build
634
+ number of the Perforce C/C++ API that it is built with.
635
+
636
+ --------------------------------------------------------------------------
637
+
638
+ New functionality in 2010.2
639
+
640
+ - 260859
641
+
642
+ Added new SetTrack() and GetTrack() methods.
643
+
644
+ For more details about server performance tracking see:
645
+ http://kb.perforce.com/article/883
646
+
647
+ - 255945, 255949, 269012
648
+
649
+ New method P4#messages() returns all messages from the
650
+ server as objects. Script writers can test the severity
651
+ of the messages to know if they are output messages (E_INFO),
652
+ warnings (E_WARN), or errors (E_FAILED/E_FATAL).
653
+
654
+ P4#errors() and P4#warnings still return the errors and
655
+ warnings as strings for backwards compatibility.
656
+
657
+ P4::Message objects have the following methods:
658
+
659
+ `P4::Message#severity` - Returns the severity of the
660
+ message, which may be one of the
661
+ following values:
662
+
663
+ E_EMPTY # nothing yet
664
+ E_INFO # something good happened
665
+ E_WARN # something not good happened
666
+ E_FAILED # user did something wrong
667
+ E_FATAL # system broken -- nothing can continue
668
+
669
+ `P4::Message#generic` - Returns the generic class of
670
+ the error, which may be one
671
+ of the following values:
672
+
673
+ EV_NONE # misc
674
+ EV_USAGE # request not consistent with dox
675
+ EV_UNKNOWN # using unknown entity
676
+ EV_CONTEXT # using entity in wrong context
677
+ EV_ILLEGAL # trying to do something you can't
678
+ EV_NOTYET # something must be corrected first
679
+ EV_PROTECT # protections prevented operation
680
+ EV_EMPTY # action returned empty results
681
+ EV_FAULT # inexplicable program fault
682
+ EV_CLIENT # client side program errors
683
+ EV_ADMIN # server administrative action required
684
+ EV_CONFIG # client configuration inadequate
685
+ EV_UPGRADE # client or server too old to interact
686
+ EV_COMM # communications error
687
+ EV_TOOBIG # not even Perforce can handle this much
688
+
689
+ `P4::Message#msgid` - Return the unique ID of the message.
690
+
691
+ `P4::Message#to_s` - Convert the object to a string
692
+
693
+ `P4::Message#inspect` - Debugging support
694
+
695
+ Bugs fixed in 2010.2
696
+
697
+ - 287185 (Bug #43426)
698
+
699
+ Running 'print' on a file that started with '---' would
700
+ cause an exception in Ruby. This is now fixed.
701
+ There is still an oddity when p4.track = 1 and a user runs
702
+ p4.run_print() on a file that only has lines starting with
703
+ '--- '. In that case, the output of the print is lost.
704
+ Disable tracking by setting p4.track = 0 (the default) will
705
+ solve this problem.
706
+
707
+ --------------------------------------------------------------------------
708
+
709
+ New functionality in 2010.1
710
+
711
+ - 232984
712
+
713
+ Removed old Ruby 1.6 compatibility code that was no longer
714
+ required. This paves the way for Ruby 1.9 compatibility.
715
+
716
+ - 230644
717
+
718
+ It's now unnecessary to run a command before calling the
719
+ following methods:
720
+
721
+ P4#server_level
722
+ P4#server_case_sensitive?
723
+ P4#server_unicode?
724
+
725
+ If no command has been run, P4Ruby will automatically run a
726
+ 'p4 info' in order to gather the required information.
727
+
728
+ - 230191
729
+
730
+ Added new P4#server_unicode? method that allows script
731
+ writers to test whether or not a Perforce Server is in
732
+ internationalized (unicode) mode. At least one Perforce
733
+ command must have been executed against the server before
734
+ this method can be called.
735
+
736
+ - 230190
737
+
738
+ Added new P4::VERSION, P4::OS, and P4::PATCHLEVEL constants
739
+ so that script writers can test the installation of P4Ruby
740
+ without having to parse the output of P4::Identify()
741
+
742
+ --------------------------------------------------------------------------
743
+
744
+ New functionality in 2009.2
745
+
746
+ - 214454 (Bug #32916)
747
+
748
+ P4#port= now raises a P4Exception if called after P4#connect().
749
+
750
+ - 214449 (Bug #35416)
751
+
752
+ Added a P4#server_case_sensitive? method that enables scripts
753
+ to detect whether the server is case-sensitive. Cannot be
754
+ called until a command has been issued to the server.
755
+
756
+ Bugs fixed in 2009.2
757
+
758
+ - 214445,214999 (Bug #35410)
759
+
760
+ P4Ruby now correctly tracks disconnects from the server.
761
+
762
+ - 222727 (Bug #36568)
763
+
764
+ The Map class removed '-' and '+' from the path if the
765
+ form Map.insert(lhs, rhs) was used, even if these characters
766
+ did not appear at the beginning of the path.
767
+ Now dashes and pluses are preserved within the path.
768
+
769
+ --------------------------------------------------------------------------
770
+
771
+ New functionality in 2009.1
772
+
773
+ - 191900 (Bug #26729)
774
+
775
+ A new method:
776
+
777
+ P4#tagged( aBool ) { block }
778
+
779
+ has been added to the P4 class. This method temporarily
780
+ toggles the use of tagged output for the duration of
781
+ the block and resets it when the block terminates.
782
+
783
+ Bugs fixed in 2009.1
784
+
785
+ - 191889 (Bug #29911)
786
+
787
+ Calling P4#run_resolve() or P4#run( 'resolve' ) without
788
+ a block or a previous call to P4#input no longer causes an
789
+ infinite loop.
790
+
791
+ - 191623,191627 (Bug #32918)
792
+
793
+ P4Ruby now correctly parses jobs when the jobspec contains
794
+ field names ending in numbers.
795
+
796
+ --------------------------------------------------------------------------
797
+
798
+ New functionality in 2008.2
799
+
800
+ - 162422 (Bug #30364), 166158
801
+
802
+ A new class, P4::Map, enables users to
803
+ create and use Perforce mappings without requiring
804
+ a connection to a server. Methods in the P4::Map class are:
805
+
806
+ P4::Map.new Constructor
807
+ P4::Map.join Join two maps to create a third
808
+ P4::Map#clear Empty a map
809
+ P4::Map#count Return the number of entries
810
+ P4::Map#empty? Tests whether a map object is empty
811
+ P4::Map#insert Inserts an entry into the map
812
+ P4::Map#translate Translate a string through a map
813
+ P4::Map#includes? Tests whether a path is mapped
814
+ P4::Map#reverse Swap left and right sides of the mapping
815
+ P4::Map#lhs Returns the left side as an array
816
+ P4::Map#rhs Returns the right side as an array
817
+ P4::Map#to_a Returns the map as an array
818
+
819
+ Bugs fixed in 2008.2
820
+
821
+ - 169159 (Bug #29935, Bug #31096), 165338
822
+
823
+ P4Ruby now correctly loads the value of P4CHARSET from the
824
+ environment.
825
+
826
+ --------------------------------------------------------------------------
827
+
828
+ New functionality in 2008.1
829
+
830
+ - 152356 (Bug #29022)
831
+
832
+ A new method 'P4#env( var )' method has been added to
833
+ the P4 class. This instance method enables the caller
834
+ to interrogate the Perforce environment, including
835
+ reading Perforce variables from P4CONFIG files and,
836
+ on Windows, the registry. P4#cwd= now loads any
837
+ P4CONFIG file settings that are appropriate to the
838
+ new working directory.
839
+
840
+ - 153005 (Bug #29308)
841
+
842
+ P4Ruby now supports Mac OS X 10.5.
843
+
844
+ --------------------------------------------------------------------------
845
+
846
+ Bugs fixed in 2007.3
847
+
848
+ - 151167 (Bug #28774)
849
+
850
+ The Makefile generated on some Linux platforms (notably
851
+ Ubuntu 7.10) was not correct, and attempted to link P4Ruby
852
+ using 'cc' instead of 'c++', causing an 'undefined symbol'
853
+ error (typically '_ZTVN10__cxxabiv120__si_class_type_infoE') ,
854
+ when attempting to use P4Ruby. This problem has been corrected.
855
+
856
+ - 150577 (Bug #28704)
857
+
858
+ The presence of deleted revisions in a file's history
859
+ might lead to incorrect fileSize and digest
860
+ attributes for other revisions in the output of
861
+ P4#run_filelog. This problem has been corrected.
862
+
863
+ - 150576 (Bug #28773)
864
+
865
+ P4::Revision#filesize() always returned nil. This
866
+ problem has been corrected.