Here are the results of my initial tests of what has been implemented:

The scm commands that look like they've been attempted: scm:add,
scm:checkout

1. scm:add is broken when tried against a real Accurev

2. scm:checkout is fundamentally flawed... but does work

3. The scm URL format used at present is not a good plan

A short summary of this is: SCM-71 is not fixed.  Let me know if you want to
take this off the list or how you want me to raise issues. A lot of the
problems I see are because the whole Accurev design is borked w.r.t. how
Maven works

I shall attempt to explain more detail:

#1 I could not get to work in any way, shape or form

#3 - does not allow specifying the accurev server and port without
specifying the username.

The URI format currently is

*accurev:[EMAIL PROTECTED]:*port:*]*depot*:*stream*:*workspace*/*path

so I either go:

  accurev:MyDepot:MyStream:MyWorkspace_sconnolly/

or

  accurev:[EMAIL PROTECTED]:5050
:MyDepot:MyStream:MyWorkspace_sconnolly/

which makes using this impossible for other users.

There needs to be a way to specify the accurev server and port without
specifying the username.

The next problem is that workspaces are ***tied to a machine and a user***

This is really an accurev design issue... but it does impact Maven.

there is a lovely accurev command:

accurev show -fx wspaces

it will give a response like:
<AcResponse
    Command="show wspaces"
    TaskId="10269">
  <Element
      Name="MyStream_sconnolly"
      Storage="/home/connollys/src/tracker"
      Host="rh01-sconnolly.mydomain.com"
      Stream="10"
      depot="MyDepot"
      Target_trans="469"
      Trans="469"
      Type="1"
      EOL="0"
      user_id="169"
      user_name="sconnolly"/>
  <Element
      Name="MyStream_win_sconnolly"
      Storage="C:/Documents and Settings/connollys/My Documents/src/tracker"
      Host="win01-sconnolly.mydomain.com"
      Stream="10"
      depot="MyDepot"
      Target_trans="469"
      Trans="469"
      Type="1"
      EOL="0"
      user_id="169"
      user_name="sconnolly"/>
</AcResponse>

Thankfully it uses / for paths on both windows and linux... but they seem to
have crazy plans to switch this behaviour!!!

This only shows the workspaces for the current default server... you really
need to override to have anything robust

so

accurev show -H server:port -fx wspaces

In this regard, specifying the workspace in the URL is probably a *bad
plan*...

especially when it is tied to the accurev user... (of course you can do a
pop from another user's workspace!)

What would be a better plan is to get the list of workspaces and have a peek
and see if we can find a workspace for that stream on this computer at the
current path...

This brings us to the second accurev problem....

#2

*You cannot nest workspaces* *You cannot do a pop from a different workspace
within a workspace*

Thus if checkoutDirectory is a child path of ***any*** workspace for the
accurev server that you are doing a checkout for... it will fail

The only way I can see around this is to do the following:

1. get a list of workspaces for the current accurev user on the server (i.e.
the show wspaces command again)
2. check to see if the directory we want to check-out to is in a workspace
3. if it is, do the checkout to %TEMP%/somerandomdir/ and then move the
files to where we want them

And then there's a gotcha!

#1 & #3

You cannot modify or check back in changes ___unless___ you are in a
workspace

So the reality is that you need a workspace to be located in the correct
directory

It's a pain in the h*le....

-Stephen

Reply via email to