p4ruby 2017.1.1609394 → 2020.1.2056123

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ab4de4ec29badd93efa2dda82673a85e0a911383
4
- data.tar.gz: 1c3e8ce22d36a1a842f7e41e9818e9edf9a36be1
2
+ SHA256:
3
+ metadata.gz: 2e5610527695e89a26cc22b7418d48a4579b3d8d7ea3b9adaf6971e801f178af
4
+ data.tar.gz: 502669cdd982a3881d3c118e05ac7e161de5682043408469436a699fd6aa6c30
5
5
  SHA512:
6
- metadata.gz: eb1ff6ad9fe56ee19482daeebe76eea35418699d9e7d2412afede429f7ad4c960e64036f880c2341507e460cc7d6b94ad345afe668ef6687f482ffa9028ed4ec
7
- data.tar.gz: 0fb948e569e0fb5707a8b53a28412831c9ffaaf42384f543ee865f6e981b5267ead68e390824b5d7b14f88ad93842ea7afd788e53fc334225cd8eea2068d0529
6
+ metadata.gz: 6ced573b1076fdfdba4b3b59f61235c64d790d94491e831e431ac34e870c146bdeb29cf723e53d3025e83a151b7753ce0fdd242bb7ca61fa0aa0fdb8badd9004
7
+ data.tar.gz: 2492e93581b93465e717901080487954fb65fb13cbfd8e6ce23fba4c64ab2baa174cf14645664a59bdbf239297234d84459b08976b558b8e902e153fb61cafcc
data/README.md CHANGED
@@ -1,877 +1,4 @@
1
- # Release Notes for P4Ruby, Perforce's script API for Ruby
1
+ [![Support](https://img.shields.io/badge/Support-Official-green.svg)](mailto:support@perforce.com)
2
2
 
3
- Version 2017.1
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 2017.1 will be compiled using a 2017.1 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', '~> 2017.1'
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 2017.1,
151
- you would want a P4Ruby version that starts with 2017.1.
152
-
153
- #### API Compatibility
154
-
155
- The 2017.1 release of P4Ruby supports the 2017.1 Perforce API.
156
- Older releases might work but are not supported.
157
-
158
- #### Ruby Compatibility
159
-
160
- The 2017.1 release of P4Ruby is supported by installing the gem
161
- with Ruby MRI releases 2.0, 2.1, 2.2, and 2.3, with shared library
162
- support.
163
-
164
- For detailed compatibility, please check the following table:
165
-
166
- Ruby Release | P4Ruby Release
167
- ===================================
168
- <2.0 | 2011.1 or later (unsupported)
169
- 2.0 | 2014.1 or later
170
- 2.1 | 2014.2 or later
171
- 2.2 | 2014.2 or later
172
- 2.3 | 2017.1 or later
173
-
174
- It is recommended that you use a Ruby distribution that can deploy
175
- native gems easily, which, outside of Windows means obtaining a source
176
- distribution of ruby and building it locally. This is easily done via RVM,
177
- and can be installed system-wide, with other features (like wrappers) that
178
- allow you to update the local installation of Ruby as security patches are
179
- released. If using RVM, be sure to use --disable-binary when installing
180
- your version of Ruby, to avoid any precompiled distributions that may not
181
- have shared library support configured, which is needed for Ruby
182
- extensions.
183
-
184
- In general, Ruby VMs installed via package managers are not officially
185
- coordinated with the MRI releases available on ruby-lang.org.
186
-
187
- We do verify that p4ruby works with Ruby 1.9 on Debian (and Ubuntu), and
188
- on CentOS 6 using the Software Collections Library. These are considered
189
- "stable" distributions, and do receive security updates.
190
-
191
- Other versions of Ruby, such as the default distribution of OS X may not
192
- work. The default OS X Ruby is infrequently updated by Apple, and is known
193
- to contain issues that do not seem to be patched.
194
-
195
- #### OpenSSL Compatibility
196
-
197
- To build P4Ruby with encrypted communication support, you must
198
- use the version of OpenSSL that Perforce C/C++ API has been
199
- built against. Running P4Ruby linked to an older library will
200
- fail with the error:
201
-
202
- "SSL library must be at least version 1.0.1."
203
-
204
- The 2017.1 release of P4Ruby is supported with OpenSSL 1.0.2
205
-
206
- For detailed compatibility, please check the following table:
207
-
208
- Perforce C/C++ API Version | OpenSSL Release
209
- ============================================
210
- 2012.1 | 1.0.0
211
- 2012.2 | 1.0.1g+
212
- 2014.1 | 1.0.1g+
213
- 2014.2 | 1.0.1i+
214
- 2015.1 | 1.0.1i+
215
- 2015.2 | 1.0.1i+
216
- 2017.1 | 1.0.2l+
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 2017.1 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 2017.1
292
-
293
- - (SIR#93993 / P4RUBY-206)
294
-
295
- Add a reset() method for resetting p4 client data (messages, output, etc.)
296
- between calls to run
297
-
298
- - (SIR#92235 / P4RUBY-204)
299
-
300
- Support graph depot commands
301
-
302
- New functionality in 2015.2
303
-
304
- - (SIR#78548 / P4RUBY-193)
305
-
306
- Release native P4Ruby gems for x86-mingw32 and x64-mingw32.
307
- Until this point, the only source gems have been available. These gems
308
- will allow Windows users for 32 or 64-bit Ruby 2.0, 2.1 or 2.2 to easily
309
- install P4Ruby.
310
-
311
- Changes in both 2015.2.0.pre0 and 2015.1.0
312
-
313
- - Applied change to P4ClientApi::SetCharset, that if it is set to "none", then
314
- we will ignore the setting. The P4API enviro file handling seems to always
315
- create this setting and apply it in various circumstances.
316
-
317
- Changes in 2015.1.0
318
-
319
- - Updated spec mappings in specmgr.cpp to be up to date with the 2015.1 P4API
320
-
321
- - Allow the P4_BIN environment variable to be set to point to a p4d for the
322
- testing library (used by the `rake test` task).
323
-
324
- New functionality in 2014.2
325
-
326
- - (SIR#28879 / P4RUBY-25)
327
-
328
- Release P4Ruby as Gem. Until this point, the gems available
329
- on rubygems.org were unofficial builds, and prone to fail in
330
- non-interactive environments like bundler.
331
-
332
- - (SIR#75097 / P4RUBY-169)
333
-
334
- Add `enviro_file` property to P4 object, which underneath, uses the
335
- new `SetEnviroFile`/`GetEnviroFile` mechanism from the 14.2 C++ API.
336
-
337
- Changes in 2014.2.0.pre6
338
-
339
- - Documented workarounds to installation failures on the OS X default Ruby
340
- installation.
341
-
342
- Changes in 2014.2.0.pre5
343
-
344
- - Fixed an issue where using the --with-p4api-dir option to gem install
345
- would not actually set up the include and lib compilation directory
346
- correctly.
347
-
348
- - No longer distributing precompiled builds for linux or OS X due to
349
- inadequate information from gem to match the Ruby distribution correctly.
350
-
351
- - No longer embedding the C++ P4API to keep the total file size down to
352
- allow the gem to be distributed via RubyGems.org.
353
-
354
- - Changed logic to call p4.charset=nil if charset is already nil or resolves
355
- to 'none'. Internally, this will trigger a call to ClientApi::SetTrans(0),
356
- which should disable character set autodetection.
357
-
358
- Bugs fixed in 2014.2.0.pre4
359
-
360
- - (BUG#77207 / P4RUBY-176)
361
- If the user has specified 'P4CHARSET=none' in a configuration file, or
362
- has not set p4.charset='auto' (and it's default value was initialized to
363
- 'none' by the C++ API), automatically disable character set detection.
364
- This can cause the API to break when connecting to non-unicode servers
365
- even though it appears to be configured to not be a unicode client.
366
-
367
- - The default C++ API version should be included with the gem source, to
368
- avoid calls to ftp.perforce.com.
369
-
370
- Bugs fixed in 2014.2.0.pre3
371
-
372
- - (BUG#75096 / P4RUBY-168)
373
- Spec mappings updated to 14.2 definitions.
374
-
375
- - (TASK#76795 / P4RUBY-176)
376
- Configuring pre-compiled gems for Linux and OS X, for supported
377
- Ruby versions (2.0, 2.1, 2.2).
378
-
379
- Bugs fixed in 2014.2.0.pre2
380
-
381
- - (BUG#76321 / P4RUBY-171)
382
- `gem install` fails using source gem distribution inside of a Docker
383
- environment due to passive FTP mode not enabled early enough.
384
-
385
- --------------------------------------------------------------------------
386
-
387
- New functionality in 2014.1
388
-
389
- - 807216 (SIR#70070)
390
-
391
- P4Ruby now supports the P4IGNORE file feature introduced
392
- in the 2013.2 server. Three new methods have been added
393
- to support this functionality:
394
-
395
- P4#ignore_file - Report current file
396
- P4#ignore_file= - Set ignore file
397
- P4#ignored?( <file> ) - Test if <file> is
398
- ignored
399
-
400
- - 807216, 750979 (SIR#70093)
401
-
402
- P4Ruby now supports the Ruby 2.0 series of rubies.
403
-
404
- --------------------------------------------------------------------------
405
-
406
- Bugs fixed in 2013.1
407
-
408
- - 733921 (Bug#63887)
409
-
410
- P4Ruby no longer crashes when an exception is raised from
411
- the block passed to P4#run_resolve.
412
-
413
- --------------------------------------------------------------------------
414
-
415
- New functionality in 2012.2
416
-
417
- - 525301 (Bug #59803)
418
-
419
- P4Ruby now supports Apple Mountain Lion (10.8).
420
-
421
- - 509253 (Bug #56480)
422
-
423
- Added P4#run_tickets() method to list local tickets.
424
- Note that P4.run('tickets') still gives the old error
425
- message "Must upgrade to 2004.2 p4 to access tickets."
426
-
427
- - 505980 (Bug #56514)
428
-
429
- Support for the new progress indicator API. P4Ruby
430
- supplies a new progress attribute, which can take an
431
- instance of P4::Progress class or subclass. Progress
432
- information is currently only supported for submits and
433
- 'sync -q'. Details can be found in the documentation.
434
-
435
- - 499586 (Bug #56520)
436
-
437
- New convenience method P4#each_<specs>() that allows
438
- easy iteration through some or all spec objects such as
439
- clients or changes. Details can be found in the documentation.
440
-
441
- Bugs fixed in 2012.2
442
-
443
- - 525097 (Bug #59786)
444
-
445
- Building P4Ruby with MinGW could generate the link error.
446
-
447
- g++: unrecognized option '-static-libstdc++'
448
-
449
- This has been fixed.
450
-
451
- - 505548 (Bug #58649)
452
-
453
- P4#parse_client could raise the exception "Unknown field name
454
- 'StreamAtChange'." when parsing a stream client workspace.
455
- Internal spec definition has been updated to resolve this.
456
-
457
- --------------------------------------------------------------------------
458
-
459
- New functionality in 2012.1
460
-
461
- - 419591 (Bug #51895)
462
-
463
- P4Ruby supports SSL connections if compiled with SSL support.
464
- Instructions on how to compile with SSL support can be found
465
- at the top of this document under "Building P4Ruby from Source"
466
- and in the documentation.
467
-
468
- P4.identify will report the version of the OpenSSL library
469
- used to build the Perforce C++ API (not the version P4Ruby
470
- is linked against).
471
-
472
- - 415643
473
-
474
- P4Ruby will now only build a 64-bit version of the library
475
- on Darwin.
476
-
477
- - 413362 (Bug #51899)
478
-
479
- Enable "action resolve" to support resolves of branches,
480
- deletes and file types. The existing P4::MergeData class
481
- has been extended and the additional attributes will be
482
- populated for an 'action resolve'. Details of the
483
- additional attributes can be found in the documentation.
484
-
485
- Bugs fixed in 2012.1
486
-
487
- - 420839 (Bug #52952)
488
-
489
- Accessing the base_name attribute of a P4::MergeData
490
- object resulted in a segmentation fault when resolving
491
- binary files. This has now been fixed and all empty
492
- fields will return Nil.
493
-
494
- - 410916, 410702 (Bug #52320)
495
-
496
- Exceptions thrown during P4.run_resolve are now raised
497
- up to the user. If an exception is encountered during the
498
- block's execution, P4Ruby will skip the remaining files.
499
-
500
- --------------------------------------------------------------------------
501
-
502
- New functionality in 2011.1
503
-
504
- - 405913
505
-
506
- New method P4#messages() returns all messages from the
507
- server as objects. Script writers can test the severity
508
- of the messages to know if they are output messages (E_INFO),
509
- warnings (E_WARN), or errors (E_FAILED/E_FATAL).
510
-
511
- P4#errors() and P4#warnings still return the errors and
512
- warnings as strings for backwards compatibility.
513
-
514
- P4::Message objects have the following methods:
515
-
516
- P4::Message#severity - Returns the severity of the
517
- message, which may be one of the
518
- following values:
519
-
520
- E_EMPTY # nothing yet
521
- E_INFO # something good happened
522
- E_WARN # something not good happened
523
- E_FAILED # user did something wrong
524
- E_FATAL # system broken -- nothing can continue
525
-
526
- P4::Message#generic - Returns the generic class of
527
- the error, which may be one
528
- of the following values:
529
-
530
- EV_NONE # misc
531
- EV_USAGE # request not consistent with dox
532
- EV_UNKNOWN # using unknown entity
533
- EV_CONTEXT # using entity in wrong context
534
- EV_ILLEGAL # trying to do something you can't
535
- EV_NOTYET # something must be corrected first
536
- EV_PROTECT # protections prevented operation
537
- EV_EMPTY # action returned empty results
538
- EV_FAULT # inexplicable program fault
539
- EV_CLIENT # client side program errors
540
- EV_ADMIN # server administrative action required
541
- EV_CONFIG # client configuration inadequate
542
- EV_UPGRADE # client or server too old to interact
543
- EV_COMM # communications error
544
- EV_TOOBIG # not even Perforce can handle this much
545
-
546
- P4::Message#msgid - Return the unique ID of the
547
- message.
548
-
549
- P4::Message#to_s - Convert the object to a string
550
-
551
- P4::Message#inspect - Debugging support
552
-
553
-
554
- - 338410 (Bug #47374)
555
-
556
- P4Ruby supports setting values in the registry (on those
557
- platforms that support it).
558
-
559
- The command P4#set_env( var, val ) will set a registry
560
- variable on platforms that support this action or raise
561
- a P4Exception for those that don't.
562
-
563
- The command P4#set_env( var, "" ) unsets a registry variable.
564
-
565
- - 333292 (Bug #36121)
566
-
567
- P4Ruby now supports Ruby 1.9
568
-
569
- - 331384
570
-
571
- P4Ruby can now be compiled with the Mingw compiler using
572
- the MinGW P4Api build.
573
-
574
- - 328203 (Bug #45861)
575
-
576
- Enable streams in P4Ruby by default. With this change,
577
- streams specific specs such as streams depots are listed.
578
- Disable the listing of streams specific specs by either
579
- setting the api_level to a value below 70 or by disabling
580
- stream handling explicitly through the P4.streams attribute:
581
-
582
- p4.streams = false
583
-
584
- - 322353 (Bug #42250)
585
-
586
- P4Ruby supports a callback interface by providing a
587
- P4#handler attribute. Set P4#handler to an instance of a
588
- subclass of P4::OutputHandler to enable callbacks.
589
- When a handler is defined, P4Ruby will invoke the handler
590
- for every response it receives from the Perforce Server
591
- immediately instead of collecting all results together in
592
- an array first. This can be used to make applications more
593
- scalable and more responsive if large results are expected.
594
- See the documentation for details on the OutputHandler class.
595
-
596
- Bugs fixed in 2011.1
597
-
598
- - 405913 (Bug #43426)
599
-
600
- Running 'print' on a file that started with '---' would
601
- cause an exception in Ruby. This is now fixed.
602
-
603
- There is still an oddity when p4.track = 1 and a user runs
604
- p4.run_print() on a file that only has lines starting with
605
- '--- '. In that case, the output of the print is lost.
606
-
607
- Disable tracking by setting p4.track = 0 (the default) will
608
- solve this problem.
609
-
610
- - 405913 (Bug #41350)
611
-
612
- Info messages now shown in P4#Messages.
613
-
614
- - 385159 (Bug #49324)
615
-
616
- On Windows Vista, Windows 7, or Windows 2008, a client running as
617
- Administrator would fail to properly process file names in
618
- non-ASCII character sets (such as Shift-JIS).
619
-
620
- - 338903 (Bug #44589)
621
-
622
- Extra dot at the end of the extracted directory path has been
623
- removed.
624
-
625
- - 338437 (Bug #39580)
626
-
627
- P4#identify() reports the platform on AMD64 as X86_64
628
- in line with all other Perforce products.
629
-
630
- - 332453
631
-
632
- Updated the stored spec templates for client, change, group,
633
- spec and user. Added spec template for new spec type
634
- streams. These are required, for example, for form-triggers
635
- that do not connect to the server first.
636
-
637
- - 329351 (Bug #41271)
638
-
639
- Include 'extraTag' fields in P4::Spec objects
640
-
641
- - 328578 (Bug #39264)
642
-
643
- P4#identify() now reports P4Ruby as P4RUBY in line with all
644
- other Perforce products. It will also include the build
645
- number of the Perforce C/C++ API that it is built with.
646
-
647
- --------------------------------------------------------------------------
648
-
649
- New functionality in 2010.2
650
-
651
- - 260859
652
-
653
- Added new SetTrack() and GetTrack() methods.
654
-
655
- For more details about server performance tracking see:
656
- http://kb.perforce.com/article/883
657
-
658
- - 255945, 255949, 269012
659
-
660
- New method P4#messages() returns all messages from the
661
- server as objects. Script writers can test the severity
662
- of the messages to know if they are output messages (E_INFO),
663
- warnings (E_WARN), or errors (E_FAILED/E_FATAL).
664
-
665
- P4#errors() and P4#warnings still return the errors and
666
- warnings as strings for backwards compatibility.
667
-
668
- P4::Message objects have the following methods:
669
-
670
- `P4::Message#severity` - Returns the severity of the
671
- message, which may be one of the
672
- following values:
673
-
674
- E_EMPTY # nothing yet
675
- E_INFO # something good happened
676
- E_WARN # something not good happened
677
- E_FAILED # user did something wrong
678
- E_FATAL # system broken -- nothing can continue
679
-
680
- `P4::Message#generic` - Returns the generic class of
681
- the error, which may be one
682
- of the following values:
683
-
684
- EV_NONE # misc
685
- EV_USAGE # request not consistent with dox
686
- EV_UNKNOWN # using unknown entity
687
- EV_CONTEXT # using entity in wrong context
688
- EV_ILLEGAL # trying to do something you can't
689
- EV_NOTYET # something must be corrected first
690
- EV_PROTECT # protections prevented operation
691
- EV_EMPTY # action returned empty results
692
- EV_FAULT # inexplicable program fault
693
- EV_CLIENT # client side program errors
694
- EV_ADMIN # server administrative action required
695
- EV_CONFIG # client configuration inadequate
696
- EV_UPGRADE # client or server too old to interact
697
- EV_COMM # communications error
698
- EV_TOOBIG # not even Perforce can handle this much
699
-
700
- `P4::Message#msgid` - Return the unique ID of the message.
701
-
702
- `P4::Message#to_s` - Convert the object to a string
703
-
704
- `P4::Message#inspect` - Debugging support
705
-
706
- Bugs fixed in 2010.2
707
-
708
- - 287185 (Bug #43426)
709
-
710
- Running 'print' on a file that started with '---' would
711
- cause an exception in Ruby. This is now fixed.
712
- There is still an oddity when p4.track = 1 and a user runs
713
- p4.run_print() on a file that only has lines starting with
714
- '--- '. In that case, the output of the print is lost.
715
- Disable tracking by setting p4.track = 0 (the default) will
716
- solve this problem.
717
-
718
- --------------------------------------------------------------------------
719
-
720
- New functionality in 2010.1
721
-
722
- - 232984
723
-
724
- Removed old Ruby 1.6 compatibility code that was no longer
725
- required. This paves the way for Ruby 1.9 compatibility.
726
-
727
- - 230644
728
-
729
- It's now unnecessary to run a command before calling the
730
- following methods:
731
-
732
- P4#server_level
733
- P4#server_case_sensitive?
734
- P4#server_unicode?
735
-
736
- If no command has been run, P4Ruby will automatically run a
737
- 'p4 info' in order to gather the required information.
738
-
739
- - 230191
740
-
741
- Added new P4#server_unicode? method that allows script
742
- writers to test whether or not a Perforce Server is in
743
- internationalized (unicode) mode. At least one Perforce
744
- command must have been executed against the server before
745
- this method can be called.
746
-
747
- - 230190
748
-
749
- Added new P4::VERSION, P4::OS, and P4::PATCHLEVEL constants
750
- so that script writers can test the installation of P4Ruby
751
- without having to parse the output of P4::Identify()
752
-
753
- --------------------------------------------------------------------------
754
-
755
- New functionality in 2009.2
756
-
757
- - 214454 (Bug #32916)
758
-
759
- P4#port= now raises a P4Exception if called after P4#connect().
760
-
761
- - 214449 (Bug #35416)
762
-
763
- Added a P4#server_case_sensitive? method that enables scripts
764
- to detect whether the server is case-sensitive. Cannot be
765
- called until a command has been issued to the server.
766
-
767
- Bugs fixed in 2009.2
768
-
769
- - 214445,214999 (Bug #35410)
770
-
771
- P4Ruby now correctly tracks disconnects from the server.
772
-
773
- - 222727 (Bug #36568)
774
-
775
- The Map class removed '-' and '+' from the path if the
776
- form Map.insert(lhs, rhs) was used, even if these characters
777
- did not appear at the beginning of the path.
778
- Now dashes and pluses are preserved within the path.
779
-
780
- --------------------------------------------------------------------------
781
-
782
- New functionality in 2009.1
783
-
784
- - 191900 (Bug #26729)
785
-
786
- A new method:
787
-
788
- P4#tagged( aBool ) { block }
789
-
790
- has been added to the P4 class. This method temporarily
791
- toggles the use of tagged output for the duration of
792
- the block and resets it when the block terminates.
793
-
794
- Bugs fixed in 2009.1
795
-
796
- - 191889 (Bug #29911)
797
-
798
- Calling P4#run_resolve() or P4#run( 'resolve' ) without
799
- a block or a previous call to P4#input no longer causes an
800
- infinite loop.
801
-
802
- - 191623,191627 (Bug #32918)
803
-
804
- P4Ruby now correctly parses jobs when the jobspec contains
805
- field names ending in numbers.
806
-
807
- --------------------------------------------------------------------------
808
-
809
- New functionality in 2008.2
810
-
811
- - 162422 (Bug #30364), 166158
812
-
813
- A new class, P4::Map, enables users to
814
- create and use Perforce mappings without requiring
815
- a connection to a server. Methods in the P4::Map class are:
816
-
817
- P4::Map.new Constructor
818
- P4::Map.join Join two maps to create a third
819
- P4::Map#clear Empty a map
820
- P4::Map#count Return the number of entries
821
- P4::Map#empty? Tests whether a map object is empty
822
- P4::Map#insert Inserts an entry into the map
823
- P4::Map#translate Translate a string through a map
824
- P4::Map#includes? Tests whether a path is mapped
825
- P4::Map#reverse Swap left and right sides of the mapping
826
- P4::Map#lhs Returns the left side as an array
827
- P4::Map#rhs Returns the right side as an array
828
- P4::Map#to_a Returns the map as an array
829
-
830
- Bugs fixed in 2008.2
831
-
832
- - 169159 (Bug #29935, Bug #31096), 165338
833
-
834
- P4Ruby now correctly loads the value of P4CHARSET from the
835
- environment.
836
-
837
- --------------------------------------------------------------------------
838
-
839
- New functionality in 2008.1
840
-
841
- - 152356 (Bug #29022)
842
-
843
- A new method 'P4#env( var )' method has been added to
844
- the P4 class. This instance method enables the caller
845
- to interrogate the Perforce environment, including
846
- reading Perforce variables from P4CONFIG files and,
847
- on Windows, the registry. P4#cwd= now loads any
848
- P4CONFIG file settings that are appropriate to the
849
- new working directory.
850
-
851
- - 153005 (Bug #29308)
852
-
853
- P4Ruby now supports Mac OS X 10.5.
854
-
855
- --------------------------------------------------------------------------
856
-
857
- Bugs fixed in 2007.3
858
-
859
- - 151167 (Bug #28774)
860
-
861
- The Makefile generated on some Linux platforms (notably
862
- Ubuntu 7.10) was not correct, and attempted to link P4Ruby
863
- using 'cc' instead of 'c++', causing an 'undefined symbol'
864
- error (typically '_ZTVN10__cxxabiv120__si_class_type_infoE') ,
865
- when attempting to use P4Ruby. This problem has been corrected.
866
-
867
- - 150577 (Bug #28704)
868
-
869
- The presence of deleted revisions in a file's history
870
- might lead to incorrect fileSize and digest
871
- attributes for other revisions in the output of
872
- P4#run_filelog. This problem has been corrected.
873
-
874
- - 150576 (Bug #28773)
875
-
876
- P4::Revision#filesize() always returned nil. This
877
- problem has been corrected.
3
+ # p4ruby
4
+ P4Ruby is a wrapper for the P4 C++ API in Ruby.