-
Notifications
You must be signed in to change notification settings - Fork 20
/
RELEASENOTES.txt
1266 lines (864 loc) · 44.4 KB
/
RELEASENOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release Notes for
P4API.NET, the Helix P4API for .NET
Version 2024.1
Introduction
This document lists all user-visible changes to P4API.NET
between release 2011.1 and this release
Perforce numbers releases YYYY.R/CCCCC, e.g. 2002.1/30547.
YYYY is the year; R is the release of that year; CCCCC is the
bug fix change level. Each bug fix in these release notes is
marked by its change number. Any build includes (1) all bug fixes
of all previous releases and (2) all bug fixes of the current
release up to the bug fix change level.
--------------------------------------------------------------------------
Installation
The simplest way to install P4API.NET is using the NuGet package manager.
The P4API.NET package can be found here -
https://www.nuget.org/packages/p4api.net
More details and other options can be found in the user guide -
https://www.perforce.com/manuals/p4api.net/Content/P4API_NET/release-compatibility-prereqs.html#Installation
--------------------------------------------------------------------------
Building P4API.NET from Source
The official version of P4API.NET exists as source on:
https://github.com/perforce/p4api.net
Instructions for building are in the BUILD.md file which can be found
here - https://github.com/perforce/p4api.net/blob/master/BUILD.md
To build the help file project (p4api.net.shfbproj) you will need
the Sandcastle Help File Builder from http://shfb.codeplex.com/.
SSL support
-----------
P4API.NET supports SSL connections, and requires linking with SSL
libraries.
Executables linked against the P4API libraries must also be linked
against real OpenSSL libraries: The latest 3.0.x patch is recommended.
Use the OpenSSL libraries as mentioned in BUILD.md.
P4API.NET is now dependent on NLog (http://nlog-project.org/). The
related package will be installed automatically by Visual Studio
if the NuGet Package Manager is installed and has
http://nlog-project.org/ specified as a Source.
--------------------------------------------------------------------------
Compatibility Statements
Server Compatibility
You can use this release of P4API.NET with any release of the
Perforce server at or later than 2018.1, but to ensure maximum
compatibility, it is recommended that you use it with the
corresponding Perforce server release
API Compatibility
This release of P4API.NET requires the 2024.1 Helix Core API
(2024.1/2596294) for C/C++ (P4API), built with Visual Studio 2019 or
later.
C#/.NET Compatibility
This release of P4API.NET, when built from source using
p4apicore.net.sln, is compatible with '.NET Framework 4.6.2',
'.NET 6.0' and '.NET Standard 2.0'. Other .Net Framework, .NET Core
and .NET Standard versions might work, but are not supported.
Platform Compatibility
While P4API.NET is generally usable on Windows, Linux and MacOS
platforms, the release is certified only on the following platforms:
Windows
Windows 10
Windows Server 2019
Windows Server 2022
Mac OS
MacOS 12.2
Linux
Ubuntu 20.04
Compiler Compatibility
Details regarding compiler compatibility can be found in the source
code markdown (.md) files i.e. p4api.net\BUILD.md and
p4api.net\p4bridge\P4Bridge.md
Compatibility with Previous Releases
Unless otherwise stated below, this release of P4API.NET is compatible
with previous releases from Perforce Software.
--------------------------------------------------------------------------
Key to symbols used in change notes below.
* -- requires new P4API.NET
** -- requires P4API.NET built with new P4API
*** -- requires new p4d server program
--------------------------------------------------------------------------
New functionality in 2024.1 (2024.1/2618274) (2024/06/27)
#2603564 (Job #120832) * ** ***
Updated P4API.NET to support 2024.1 release of Helix Core.
#2616734,#2617678 (Job #120831) * ** ***
Added support for comments in Client,Label,Typemap and Branch spec.
#2614334,#2614783 (Job #116235) *
P4API.NET will not publish deprecated nuget packages from this release.
#2614333 (Job #120452) * ** ***
Updated enums for ErrorSubSytem to be in sync with Helix Core server.
--------------------------------------------------------------------------
Bugs fixed in 2024.1 (2024.1/2618274) (2024/06/27)
#2612692 (Job #117990) *
Fixed issue where user was not able to revert file in case of
SSL enabled unicode server.
#2599924,#2599979 (Job #119273) *
Fixed the issue where License properties was not being populated.
#2600004 (Job #120543) *
Refactored code for performance improvement in case of exception handling.
#2600957 (Job #120754) *
Fixed issue to use correct file path separator depending on OS at runtime.
#2614782,#2615007,#2614780 (Job #121125,#121320,#121321) *
This fix addresses vulnerabilties CVE-2024-21907,CVE-2019-0820 and
CVE-2018-8292
--------------------------------------------------------------------------
New functionality in 2023.2 Patch 1 (2023.2/2585793) (2024/04/16)
#2574099 (Job #113810) * **
Added support for renameclient feature
#2581518,2582417,2582434 (Job #109430) * ** ***
Added support for p4 license command options -i,-u,-o and -L.
--------------------------------------------------------------------------
New functionality in 2023.2 (2023.2/2553501) (2024/02/07)
#2526799 (Job #117566) * **
Updated P4API.NET to support 2023.2 release of Helix Core
#2539918 (Job #117014) * **
Added support for 'Support Traits Depot' feature for fstat command
#2539918 (Job #117015) * **
Added support for 'Support Traits Depot' feature for attribute command
#2546194 (Job #117018) * **
Added support for --viewmatch argument in streams command
--------------------------------------------------------------------------
New functionality in 2023.1 Patch 1 (2023.1/2484623) (2023/09/05)
#2473015 (Job #116680) *
The CreateClient() method is now backward compatible and no longer
throws exceptions while communicating with servers older than 2023.1
#2483848 (Job #116774) *
The CreateGroup() method is now backward compatible and the
MaxMemory and Description fields are appropriately handled while
communicating with servers older than 2022.2
#2479149, #2480450 (Job #116928) *
Added a new method named 'ToServerCompatibleString' to the
ProtectionMode & ProtectionType enums. This method translates the
protection modes and group/user indicator in the ProtectionMode
object to server compatible strings. E.g. 'ReadRights' is translated
to '=read' and 'Write' is translated to 'write' among others. Refer
to the P4API.NET reference for more details
--------------------------------------------------------------------------
Bugs fixed in 2023.1 Patch 1 (2023.1/2484623) (2023/09/05)
#2475194, #2475153 (Job #116804, #116653) *
The GetProtectionTable() method now parses the comments in the
protections table without returning an exception
#2477940, #2477263 (Job #116806, #116653) *
Fixed the issue where the GetProtectionTable() method incorrectly
returned 'List' as the Protection Mode entry for specific rights
(e.g. '=read')
--------------------------------------------------------------------------
New functionality in 2023.1 (2023.1/2456134) (2023/06/20)
#2446898, #2447440, #2447458 (Job #115785) * **
Updated P4API.NET to support 2023.1 release of Helix Core
--------------------------------------------------------------------------
New functionality in 2022.2 Patch 2 (2022.2/2545965) (2024/01/30)
(Job #118909) *
This release is built against P4API (2022.2/2531894),
to address possible vulnerability: CVE-2023-5759.
--------------------------------------------------------------------------
New functionality in 2022.2 Patch 1 (2022.2/2432799) (2023/04/24)
#2431166 (Job #115331) *
Binaries of P4API.NET are now statically linked with OpenSSL 3.0.8
--------------------------------------------------------------------------
New functionality in 2022.2 (2022.2/2428247) (2023/04/13)
#2426141, #2424368 (Job #114276) * **
Updated P4API.NET to support 2022.2 release of Helix Core
#2426754 (Job #106149) * **
Added support for the '-P' option in IntegrateFilesCmdOptions
object, thus allowing for specifying a different target stream
overriding the configured parent
--------------------------------------------------------------------------
Bug fixed in 2021.2 Patch 7 (2021.2/2413698) (2023/03/02)
#2410204 (Job #113832) *
Fixed the issue where adding the 'RevertFilesCmdFlags.Preview' (-n)
flag had no impact on file reverts.
--------------------------------------------------------------------------
New functionality in 2021.2 Patch 6 (2021.2/2405588) (2023/02/10)
Important security note
This version addresses vulnerabilities in OpenSSL (CVE-2023-0286,
CVE-2023-0215, CVE-2022-4450, CVE-2022-4304) by linking in version
1.1.1t of the library.
--------------------------------------------------------------------------
Bug fixed in 2021.2 Patch 5 (2021.2/2401970) (2023/02/03)
#2394629 *
Property 'CommandTimeout' in class 'Connection' is marked as
Obsolete, as it is no longer valid.
--------------------------------------------------------------------------
Bug fixed in 2021.2 Patch 4 (2021.2/2393847) (2023/01/18)
#2390047 (Job #113519) * **
Fixed the issue where AccessViolationException (Attempted to
read or write protected memory) was thrown while using
multi-threaded environment
--------------------------------------------------------------------------
New functionality in 2021.2 Patch 3
#2334385 (Job #111968) * **
Added support for the p4Debug.SetLevel() functionality from C++ API
--------------------------------------------------------------------------
Bugs fixed in 2021.2 Patch 3
#2352032 (Job #112528) * **
Fixed the issue where loading p4bridge.dll was causing invalid
environment for other libraries
--------------------------------------------------------------------------
Bugs fixed in 2021.2 Patch 2
#2350293 (Job #112567) * **
Fixed unnecessary extra login calls, when creating P4Server object.
--------------------------------------------------------------------------
New functionality in 2021.2 Patch 1
#2314383 (Job 100448, 101660, 103635, 106773) * ** ***
Updated P4API.NET to support .NET 6.0 (.NET CORE) on three platforms.
we now provide cross platform support for Windows, OSX and Linux
This change was pretty much a re-write of the entire product.
Windows Structured Error Handling was removed and replaced with exceptions.
Unit test frameworks were extended to be cross-platform.
New Documentation was added to the source directories as .md (Markdown) files.
The C++ bridge is now built using Cmake, and requires cmake 3.20 or better.
Build instructions are in the .md files provided with the source distribution.
#2314383 (Job 104608 108267) * ** ***
Created MarkDown documentation with build instructions. (for GitHub users)
--------------------------------------------------------------------------
Bugs fixed in 2021.2 Patch 1
#2314383 (Job 108575, 106214, 102654) * **
Crash when using SSL to connect to a non-ssl server.
#2314383 (Job 108504) * **
Repository.GetDepotFileDiffs() does not handle shelved files correctly.
#2314383 (Job 103635) * **
Better naming for p4bridge.dll.
#2314383 (Job 106773) * **
Fixed Callback crash on delegate LogMessageDelegate.
#2314383 (Job 100836) * **
Bridge is intercepting Control-C before C# can handle it
#2314383 (Job100191) * **
GetConfigFile() is always returning the highest config file it can find.
#2314383 (Job 107901) * **
Crash when using TrustAndConnect from .NET Core.
#2314383 (Job 105498) * **
P4Server Connect() options are not picked up by multithreaded P4ServerMT.
#2314383 (Job 105501) * **
TrustAndConnect() does not set options correctly.
#2314383 (Job 105497) * **
Connection.Connect() does not dispose of _p4serverMT correctly.
--------------------------------------------------------------------------
New functionality in 2021.2
(Job #109876) * ** ***
Updated P4API.NET to support 2021.2 release of Helix Core.
#2233539 (Job #105277) *
Added ditto mapping to ViewMap class.
#2240026 (Job #109429) * ** ***
Added streamcmds edit/revert/resolve.
#2250156 (Job #109573 #105435) *
Improvement to Nuget packaging, changed "CopyToOutputDirectory",
from "Copy Always" to "Copy If Newer".
--------------------------------------------------------------------------
Bugs fixed in 2021.2
#2233028 (Job 108933) *
Fixed issue where, when creating a Stream on P4D server,
(version 2021.1 or older), would result in error:
"Unknown field name 'ParentView'".
#2237173 (Job #109275) *
When parsing returned changelist, Identity field is now correctly
populated instead of taking the value of Stream.
--------------------------------------------------------------------------
New functionality in 2020.2
#2037001 #2036771 #2036714 #2036473 (Job 105312) * ** ***
Updated P4API.NET to support 2020.2 release of Helix Core.
#2069428 (Job 105312) * ** ***
Added support for comments to Stream spec ViewMap.
#2036525 (Job 103853) * ** ***
Updated Client spec to 2020.2.
(Job 104854) *
Binaries of P4API.NET are statically linked with OpenSSL 1.1.1i.
--------------------------------------------------------------------------
New functionality in 2020.1
#1933495 (Job 71267, 94689 ) *
There is now Any CPU versions of P4API.NET. p4api.net and
p4api.net.core are available at https://www.nuget.org/
or can be downloaded and installed with the NuGet package
manager in Visual Studio.
#1933495 (Job 95051 ) *
There is now a .NET Core version of P4API.NET. p4api.net.core
is available at https://www.nuget.org/ or can be downloaded
and installed with the NuGet package manager in Visual Studio.
#1933495 (Job 100697 ) *
The p4bridge.dll is now built with openssl 1.1.1.
#1919867 (Job 99492 ) *
FileAction.Archive has been added to FileMetaData.
--------------------------------------------------------------------------
Bugs fixed in 2020.1
#1930506 (Job 101658) *
GetInfo in the p4bridge will now return and empty string
instead of a nullptr, which could previously cause a crash
in the calling application.
--------------------------------------------------------------------------
Bugs fixed in 2019.3
#1880615 (Job 85495) *
In FileResolveRecord the '#' character is now trimmed from
the revision specifiers so that int.TryParse can return
something other than 0.
#1880534 (Job 76750) *
Version.Date is now correctly parsed in
FromGetServerMetaDataCmdTaggedOutput. The date will still be
in the format M/D/YYYY 12:00:00 AM as a DateTime object always
shows time. If the end user only wants the date, they can use
DateTime.ToString().
#1880486 (Job 79134) *
GetProtectionTable(Options options) has been obsoleted in
favor of GetProtectionTable(). There is no reason to provided
any flags with this command and the -o flag will be added
every time.
#1880408 (Job 84053) *
Default values have been added for Options, SubmitOptions,
and LineEnd for Client so they will never be null, which
could cause an exception when using Client.ToString().
#1880376 (Job 72025) *
GetStream(string stream, string parent, Options options) has
been obsoleted. Parent argument was redundant. It has been
replaced with GetStream(string stream, Options options).
#1879924 (Job 79425) *
Repository.GetJob() no longer returns a job that does not
exist on the server, it will now return null. GetJob("") will
return a new job.
#1879905 (Job 100191) *
GetConfigFile() now uses GetConfigs() and returns the first
item which will be the config file closest to the current
working directory.
--------------------------------------------------------------------------
Bugs fixed in 2019.2 Patch 2
#1874815 (Job 100402) *
P4Server.Set will no longer result in corrupted values when
setting P4USER or P4CLIENT to values with Japanese characters.
--------------------------------------------------------------------------
New functionality in 2019.2 Patch 1
#1848057 (Job 99516) *
P4Server now has a bool, UrlHandled() that is set to true if
ClientUser:HandleUrl is called.
--------------------------------------------------------------------------
New functionality in 2019.2
#1827100 (Job 99096) *
The DepotType enum now has more recently added types: Tangent,
Extension, and Graph.
--------------------------------------------------------------------------
Bugs fixed in 2019.2
#1834051 (Job 99015) *
GetProtectionEntries will now return exclusionary lines
when run with AllUsers flag. The ProtectionEntry now returns
an unmap bool to indicate if the path is excluded.
#1833938 (Job 99016) *
GetProtectionEntries now returns correct ProtectionMode
for =open, =read, =branch, and =write permissions.
#1833797 (Job 99009) *
GetProtectionEntries will no longer fail with -M or -m flags.
Those options are no longer available in
GetProtectionEntriesCmdFlags. A GetMaxProtectionAccess method
has been added to be used with
GetMaxProtectionAccessCmdOptions and
GetMaxProtectionAccessCmdFlags which contain the -M or -m
flags.
#1820145 (Job 99131) *
GetDepots now returns depots of DepotType Graph.
--------------------------------------------------------------------------
New functionality in 2019.1
#1766020 (Job 97960) *
A MapType of ImportSubmittable is now an enumerable in
MapEntry.MapType for Stream mappings of import+.
--------------------------------------------------------------------------
Bugs fixed in 2019.1
#1768596 (Job 98043) *
The command options for ResolveFiles, MoveFile,
IntegrateFiles, DeleteFiles, AddFiles and Lock no longer
allow 0 to be specified as a changelist number.
#1766020 (Job 97976) *
ViewMap no longer trims leading - or + from a path that is
not either an exclusionary or overlay mapping.
#1764301 (Job 97882) *
DateTimeVersion now correctly handles "-" date separators on
non-US locale hosts.
--------------------------------------------------------------------------
New functionality in 2018.4
#1707027 (Job 96454) *
P4API.NET now has a GetTicket(ticketFile, port, user) method.
#1706727 (Job 81054) *
SetTicketFileAPI is exposed in the C++ API by the addition of
GetTicketFile and SetTicketFile.
#1699740 (Job 59503) *
P4API.NET is now able to call "p4 diff" directly with the
addition of Repository.GetFileDiffs.
#1697805 (Job 94473) *
The -e and -r flags have been added to ChangesCmdOptions.
#1697529 (Job 84160) *
P4API.NET now throws login failures as exceptions when the
fail is due to protections.
--------------------------------------------------------------------------
Bugs fixed in 2018.4
#1727848 (Job 97015) *
FileMetaData.IsStale no longer returns false if the have
revision of the file is 0.
#1721650 (Job 96872) *
P4API.NET can now connect and login to a server that is
configured to block all commands unless the user is logged in.
#1708199 (Job 96467) *
GetLabel() no longer throws an exception if the viewmap has any
exclusionary mappings.
#1698682 (Job 80718) *
FileSpec strings are now escaped in GetSubmittedIntegrations
and depot path strings are now unescaped when parsing
integration records.
#1695295 (Job 87770) *
DateTimeVersion() now returns time along with the date.
#1694527 (Job 96599) *
GetSyncedFiles now reliably reports all files when run against
a large number of files (~400,000).
#1694527 (Job 85941) *
Parallel operations now return specific errors from command
failures. In particular, overwrite (can't clobber) errors will
be returned when they are encountered in a parallel sync.
#1694527 (Job 95320) *
Repository.Connection.Client.SyncFiles will no longer throw
exceptions when run on a large number of files (~400,000).
#1691851 (Job 85728) *
P4API.NET will now return FileMetaData for newly added files
that have not been submitted.
#1682587 (Job 85618) *
A new CounterCmdOptions has been added. The misspelled
CoutnerCmdOptions has been obsoleted.
--------------------------------------------------------------------------
Bugs fixed in 2018.3
#1673045 (Job 95808, 94771) *
Locking has been improved for P4Server's
RunCommand/Close/DisconnectTimer to avoid RunCommand errors
when disconnected due to idle.
--------------------------------------------------------------------------
Bugs fixed in 2018.2 Patch 1
#1658096 (Job 94926) *
GetFileMetadataCmdFlags.ExcludeClientData now correctly sets
the -Os command flag.
#1658090 (Job 95131) *
p4api.net now resets text_results in clear_results(). The
previous change using .Clear() would not remove old
text_results in the case where the next command would not
return text results (e.g. attempting to print a deleted file
or a binary file).
--------------------------------------------------------------------------
Bugs fixed in 2018.2
1650993 (Job 95001, 94897) *
p4api.net now clears text_results and Binary_results in
clear_results().
--------------------------------------------------------------------------
New functionality in 2018.1
1626159 (Job 94404) *
Error messages have been updated from current error
messages in P4API.
1625325 (Job 94403) *
A DisableParallel enum has been added to
SubmitFilesCmdFlags and ShelveFilesCmdFlags.
--------------------------------------------------------------------------
Bugs fixed in 2018.1
1634030 (Job 93505) *
p4api.net now handles the case of a Connection.Credential
being set to null and will also clear the
getP4Server().Password.
1604606 (Job 93785) *
Reviews are now processed properly in
FromUserCmdTaggedOutput() method
1601523 (Job 93827) *
p4api.net now handles unicode files correctly.
--------------------------------------------------------------------------
Bugs fixed in 2017.3
1574022 (Job 69159) *
TCP connection no longer remains in the ESTABLISHED state
after P4CommandTimeOutException.
--------------------------------------------------------------------------
New functionality in 2017.3
1582443 (Job 84166, 67594, 49408) *
It is now possible to create a connection based on path; e.g.
if a .p4config or env variables exist, using a path should
return the correct configuration for the connection.
1545176 (Job 54873) *
The locally set Perforce variables (P4PORT, P4USER, P4CLIENT)
are now accessible.
1526478 (Job 69159) *
There is now a single and multi-threaded version of P4Server.
Single=threaded -> only one p4 TCP connection, which needs to
locked and managed on its own (e.g. LastResult) in a MT
application.
Multi-threaded -> each request from a different thread gets
its own TCP connection; this is not thread pooling, each
thread has a dedicated TCP connection.
The now unused enviro and connectionmanager implementations
have been removed.
--------------------------------------------------------------------------
New functionality in 2017.2
1526478 (Job 76946) *
ReconcileFiles and ReconcileStatus commands have been added
to p4api.net.
--------------------------------------------------------------------------
New functionality in 2017.1
Now using the 2016.2 version of the P4 api to build the bridge.
BRIDGE CHANGES:
bridge unit tests clean up. Removed warnings, all tests run
clean.
added private enviro to the P4BridgeServer to allow overriding
parameters locally. This is a work-around for bug 86738.
added TestEnviro, TestParallelSync, TestSetVars and TestRsh to
bridge unit tests.
added these entry points to p4bridge-api.h and .cpp:
Update(const char *var, const char *val);
ClearUpdate(const char *var);
added these entry points to P4BridgeServer
Update(const char *var, const char *value);
ClearUpdate(const char *var);
SetProtocol(var, value);
added NLog for test logging
added test timings in log file
P4API.NET CHANGES:
added additional documentation to many C# classes.
added these entry points to P4Server Class:
Update(string var, string val);
ClearUpdate(string var);
SetCharacterSet(IntPtr pServer, String charSet, String
FileCharSet);
improved reliability of API Unit tests during exceptions.
--------------------------------------------------------------------------
Bugs fixed in 2017.1 Patch 1
#1536775 (Job 92161, 92227) *
P4API.NET no longer changes or removes the P4CLIENT
environment variable on connection.
--------------------------------------------------------------------------
Bugs fixed in 2017.1
1522723 (Job 89400) *
GetHashCode() now provided for Perforce classes in P4API.
(Job 85941) **
Parallel sync now returns overwrite errors.
--------------------------------------------------------------------------
New functionality in 2016.1
Now using the 2015.2 version of the P4 api to build the bridge
dll.
1263499 (Job 80052) *
Enhancements to Connection class.
- More null checks.
- Exposed the KeepAliveDelay in the Connection class.
1263511 (Job 80573*
Added CancelCommand(uint cmdId) the Connection class.
--------------------------------------------------------------------------
Bugs fixed in 2015.2
1098025 (Job #78976 ) *
Subgroups are not saved when saving a group .
1099364 (Job #079032 ) *
Remove Server Requirement from P4MapApi.
1104985 (Job #078982 ) *
Not setting ProgramVersion can override what ProgramName is
set to.
1203737 (Jobs #79728 & #79745 ) *
FileMetaDataParsing emits a index not found exception when
parsing data with numbered arguments with sparse data.
--------------------------------------------------------------------------
New functionality in 2015.2
#1101495 (Job #079032 ) *
added GetP4ConfigFile() and GetP4ConfigFile(string cwd) to
make it possible for clients to access those functions in the
bridge.
--------------------------------------------------------------------------
New functionality in 2014.3
#932980 (Job #77163) *
A new method, LoadTicketFile() has been added to expose
GetTicketFile() in the C++ API.
--------------------------------------------------------------------------
New functionality in 2014.2
#840029 (Job #73979) *
Informational messages are now passed back with their related
message numbers to help client applications determine what
error or info is returned, no matter what language it may have
translated into.
--------------------------------------------------------------------------
Bugs fixed in 2014.2 Patch 3
#970862 (Job #76968) *
P4API.NET no longer reports its name and version as
[dot-net-api-p4/1.0] during a connection to a repository. The
name and version are now reported as the hosting application.
In the case of plugin developed with P4API.NET, the hosting
application will be the host of the plugin. For example, the
server log entries of a connection made by P4VS with P4API.NET
will show as the Visual Studio application.
--------------------------------------------------------------------------
Bugs fixed in 2014.2 Patch 2
#976861 (Job #71195) *
Extra white spaces on the end of P4CHARSET value no longer
result in an "Unknown or unsupported charset" error.
--------------------------------------------------------------------------
Bugs fixed in 2014.2 Patch 1
#960568 (Job #75389, #75997) *
A memory leak has been fixed which could previously cause
crashes in client applications built with the .NET API.
Connections are now properly closed on the server side after
a command has run.
--------------------------------------------------------------------------
Bugs fixed in 2014.2
#851722 (Job #72929) *
Set up and tear down of unit tests has been improved so that
tests will no longer fail on a VM with timing errors causing
file access errors.
--------------------------------------------------------------------------
New functionality in 2014.1
#799421 (Job #71523) *
-A flag has been added to GetFileMetadataCmdOptions.
#797367 (Job #71583, #71582, #71579) *
openattrProp-<name>, attrProp-<name>, and openattr-<name> have
been added to FileMetaData.
#796246 (Job #71584) *
totalFileCount has been added to FileMetaData.
#795785 (Job #71489) *
Options have been added for GetDepotFiles.
#795719 (Job #71541) *
attrDigest.has been added to FileMetaData.
#795719 (Job #71524, #71522) *
-U, -Oa, -Od, -Oe flags have been added to
GetFileMetadataCmdFlags.
#794025 (Job #71513, #71512) *
-s and -x flags have been added to GetOpenedFilesCmdFlags.
#793280 (Job #71487) *
-U flag has been added to the options for GetDepotFiles.
#790870 (Job #71389, #71388) *
'leaveunchanged' and 'promote' options are now supported for
the 'p4 shelve' command.
#786724 (Job #70324) *
There is now an UpdateChangelist method that accepts an
options parameter.
#773728 (Job #57787) *
When specifying the default changelist for
SubmitFilesCmdFlags which takes an int, '0' as well as '-1'
are now allowed.
#773728 (Job #66520) *
ServerID has been added to the Label specification.
#773728 (Job #70737, #70735) *
global, unload, all labels, and server id options have been
added to LabelsCmdFlags.
#770551 (Job #70697) *
There is now an UpdateGroup method that accepts an options
parameter.
#770546 (Job #70686) *
There is now an UpdateUser method that accepts an options
parameter.
#770168 (Job #70665) *
UpdateStream now populates fields from default values.
#767577 (Job #69707) *
-Od flag has been added to GetDepotFileDiffsCmdFlags.
#766483 (Job #63322) *
Multi-line fields in specifications are now auto indented
to avoid syntax errors on form submission.
--------------------------------------------------------------------------
Bugs fixed in 2014.1 Patch 1
#842472 (Job #72727) *
NewChangelist() no longer uses 0 as a changelist id if the
integer parse of the id fails when the id is "new".
--------------------------------------------------------------------------
Bugs fixed in 2014.1
#810960 (Job #71854) *
Group creation no longer fails on a server at 2009.1 or
older.
#803114 (Job #71831, #71830, #71829, #71828) *
GetUsers, GetStreams, GetFixes, and GetDepots no longer
return incorrect date fields.
#799282 (Job #71675) *
GetFileMetaDataCmdOptions no longer fails to create options by
not passing an attribute pattern to the base Options
#803114 (Job #71829) *
Getfixes no longer returns incorrect date fields..
#793665 (Job #71194) *
^M characters are no longer added to description fields with
multiple lines..
#799292 (Job #71161) *
DeleteStream() no longer automatically uses the -f flag..
#781628 (Job #71086) *
ResolveFiles(ResolveFileDelegate resolveHandler,
Options options, params FileSpec[] files) no longer ignores
the -c flag when building list of files to resolve..
#774516 (Job #70831) *
SubmitCmdOptions no longer adds -c flag when submitting
shelved files from the changelist object.
#773298 (Job #70768) *
Stream.Parse(file) now properly reads the stream name.
#770168 (Job #70666) *
When a type is passed into the Stream options, its case is
now adjusted appropriately for forms.
#767354 (Job #53626) *
Workspace description fields no longer have a Windows newline
appended to it.
#000000 (Job #00000) *
GetChangelist now converts the UTC tagged output returned by
p4 describe to server time.