Git Fusion branch management
Imported from Git
Fix crashing bug in P4Ruby when an exception is raised from within
the block passed to P4#run_resolve. This happened because the
P4::MergeData object was attached to the exception and so survived
longer than the resolve process itself. Ruby's exception handling
then tries to call P4::MergeData#to_s to format the object as a
string, but some of the internal pointers inside the MergeData object
(provided by P4Api) have already been deleted. The to_s method tried
to access those objects and caused the crash.
This change ensures that the MergeData object invalidates its pointers
to objects owned by P4Api and passed in with the scope of an individual
resolve as soon as that resolve is completed (successfully or otherwise).
Fix binary file resolve
Accessing the base_name attribute of a P4::MergeData object resulted
in a segmentation fault when resolving binary files. This is because the
base file is empty for binary files, and the Name() method invoked on it does
not protect itself in case of a NULL value.
User visible change, to be documented in the release notes.
Implemented 'action resolve' in P4Ruby.
This extends the existing P4MergeData class to support action resolve. Users
will need to test the MergeData object passed to the block to determine if the
resolve is for content (P4::MergeData#content_resolve?) or action
(P4::MergeData#action_resolve?). The attributes available in
'P4::MergeDatamerge' for an action resolve are:
merge_action : The action chosen for the merge, can be emtpy
yours_action: your action/filetype
their_action: their action/filetype
type: the type of merge. Can be
info: a dictionary with additional information that can vary with the resolve
Updated unit test to test action resolve.
User visible change, to be documented in the release notes for 2012.1.
Add encoding to Strings
As part of adding Ruby 1.9 support we need to associate the encoding
for Ruby's strings from the server. This approach is similar to Sven's
(in changelist 257263), where everything but the 'content' charset was
set to 'utf8'. The content charset is picked up from P4CHARSET and this
is used to translate any file content.
Also disabled the Ruby 1.9 warning for each compile.
User visible change to be documented in release notes.
Copyright notice housekeeping: update all notices to 2008, and
correct start date from 1997 to 2001 when P4Ruby was first released
from the public depot.
No functional change
|#2||14521||tony||Update copyright notices in all applicable P4Ruby files.|
Add P4Ruby 1.5944 to main as start-point for the first
productized release of P4Ruby