History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: SCM-246
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vincent Siveton
Reporter: Tom Parker
Votes: 3
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Maven SCM

p4 command reports most or all errors on stderr but maven-scm-provider-perforce throws away stderr

Created: 31/Oct/06 12:03 AM   Updated: Wednesday 06:35 PM
Component/s: maven-scm-provider-perforce
Affects Version/s: None
Fix Version/s: 1.1.1

Time Tracking:
Not Specified

File Attachments: 1. Text File maven-scm-provider-perforce.patch (10 kb)

Environment:
I tested this with whatever version came down by default & then with the lastest svn trunk. The fixes & affects versions available in this issue form don't seem to match the versions available.

[tomp@tua maven-scm-provider-perforce]$ p4 -V
Perforce - The Fast Software Configuration Management System.
Copyright 1995-2006 Perforce Software. All rights reserved.
Rev. P4/LINUX24X86/2006.1/101890 (2006/06/21).

[tomp@tua maven-scm-provider-perforce]$ p4 info
User name: tparker
Client name: tua
Client host: tua.uiactive.com
Client unknown.
Current directory: /u01/tomp/maven-scm/maven-scm-providers/maven-scm-provider-perforce
Client address: 172.18.1.29:52715
Server address: sydb.bullant.local:1666
Server root: P:\P4ROOT
Server date: 2006/10/31 16:47:50 +1100 AUS Eastern Daylight Time
Server version: P4D/NTX86/2005.2/93627 (2006/02/14)
Server license: Bullant Software (fka Bullant Technology - fna Softblocks Pty.) 40 users (support expired 2006/10/04)

Complexity: Intermediate


 Description  « Hide
This applies to most or all commands in maven-scm-provider-perforce. I was unable to fix some basic scm configuration issues until I downloaded the maven-scm-provider-perforce source and hacked it to consume and report the p4 command's stderr as well as stdout.

The attached patch fixes the problem for diff, checkin, checkout and tag. My solution naively consumes stdout until it is finished and then consums stderr. This isn't ideal if the output order is significant, but for the errors situations I was dealing with, it worked fine. I had a brief search for an InputStreamMultiplexer but found nothing. I have included todos to improve this.

There is much potential for reuse between the classes in maven-scm-provider-perforce, I have included todo's stating as such.

I have not fixed all the perforce commands. Sorry.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Mike Perham - 02/Dec/06 01:48 AM
The Perforce provider is terrible wrt code sharing and reuse, mostly due to limitations in the SCM API. There is no AbstractPerforceCommand because each type of command has its own base class . So you get crappy, static method-based code sharing and no one is happy, especially me. So adding "TODO Share more code" isn't terribly helpful. Actual suggestions on how to improve the code would be much appreciated (and patches even more so!).

Vincent Siveton - 03/Sep/08 08:29 AM
Patch applied in rr691605. Leave open for other commands.

Vincent Siveton - 03/Sep/08 06:35 PM
Fixed in r691823
Since I am not a Perforce user, please test it.