p4ruby 2014.2.0.pre3-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
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.