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.
data/lib/P4.so ADDED
Binary file
data/lib/P4/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ class P4
2
+ Version = VERSION = '2014.2.0.pre3'
3
+ end
@@ -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.