Re: Sourcegear Vault

2009-11-08 Thread schuijo

Sorry Lynn, I haven't checked the posting here in a while.  I did have
it working, but not what I would call well.  The Vault CLI is
extremely slow when it needs to login to the Vault server, and it does
this once for each file in the review.  I wanted to create a method of
logging into the Vault server on first contact and retain that
connection.  I was trying to integrate a test .Net utility with
(something I found for Python, which name is escaping me now) when
what little free-time I had evaporated.  I'm hopeful I'll be able to
return to this project early next year.

John


On Oct 28, 1:26 pm, Lynn Roth lynnr...@gmail.com wrote:
 John,
 Were you ever able to get Review Board working well with Vault?

 Thanks,
 Lynn

 On Tue, Aug 18, 2009 at 3:47 PM, Christian Hammond chip...@chipx86.comwrote:



  We won't support Review Board running on IronPython. That's a no-go.
  However, a utility program for communicating with the server could be
  written using IronPython (or whatever) and Review Board can execute that,
  much like we do with git and p4.

  Christian

  --
  Christian Hammond - chip...@chipx86.com

  Review Board -http://www.review-board.org
  VMware, Inc. -http://www.vmware.com

  On Tue, Aug 18, 2009 at 12:14 PM, schuijo schu...@gmail.com wrote:

  Any chance Review-Board will work with IronPython?  (yes, the Vault
  libraries are .NET)

  On Aug 18, 11:01 am, schuijo schu...@gmail.com wrote:
   Christian,

   It does, but requires a login first.  It has a SOAP interface defined,
   but SourceGear highly recommends NOT using it.

   I have a Python question for you (sorry, until a couple weeks ago I
   never even heard of Python ;-)

   It seems the (time-wise) expensive steps in this Vault integration are
   the Java VM for the Java client, and the login step each time the CLC
   is called.  I'm thinking that creating some form of a DLL interface
   that will stay logged into Vault would greatly improve our response
   times.  Does Python have support for DLL integration?  COM?

   Thanks!

   On Aug 17, 1:23 pm, Christian Hammond chip...@chipx86.com wrote:

Hi John,

Yeah, that seems a bit expensive, slow, and unscalable...

Does Vault happen to have built-in support for looking at raw files
  from a
web page, given a filename and revision? If so, it can take advantage
  of the
new raw URL field I'm adding for Git.

If not, we'll need to figure out a solution that doesn't require Java.

Christian

--
Christian Hammond - chip...@chipx86.com
Review Board -http://www.review-board.org
VMware, Inc. -http://www.vmware.com

On Mon, Aug 17, 2009 at 8:31 AM, schuijo schu...@gmail.com wrote:

 Thanks Christian, that seemed to be the case.

 Just a note to anyone attempting to integrate with Sourcegear's
  Vault:
 I originally attempted to use their Java CLC for portability, but
  each
 file in the review needed to contact the Vault server twice and each
 contact would (re)spawn the Java VM which was very expensive time
 wise.  I'm currently testing the system with the Win32 CLC and it is
 slow, but usable.  I'm considering looking into the possiblity of
 batching the contacts to the Vault server...time permitting.

 Thanks again for all your help Christian!!
 John

 On Aug 12, 7:21 pm, Christian Hammond chip...@chipx86.com wrote:
  Hi,

  It's possible that when you use the cache function, it's returning
  cached data from some older, broken attempt. If you reenable the
  caching and then fully clear the cache and try again, does it
  work?

  Christian

  On Wednesday, August 12, 2009, schuijo schu...@gmail.com wrote:

   More:

   I traced the source of that parameter to get_original_file() in
   diffutils.py.  When I bypass the cache lookup and just return
  the
   result of the fetch_file() sub-function I can display diffs
  properly,
   although response is very slow as expected.  Any ideas where I
  should
   look to determine why the cache contents would be wrong?  (I do
  have
   the memcached server installed)

   Thanks!

   On Aug 12, 5:54 pm, schuijo schu...@gmail.com wrote:
   I think I am very close now, but I have a problem in
  diffutils.py.
   The second parameter in the parse() function (file I believe)
  contains
   some invalid data, where does this get populated?

   Thanks!

   On Aug 11, 2:29 pm, Christian Hammond chip...@chipx86.com
  wrote:

Hi,

Path is the path to the file in the repository. If the path
  in the
 diff is
always going to be absolute, then you can completely ignore
 base_path and
just use path. We use base_path for Subversion, where the
  filenames
 in the
diff are relative to the current directory rather than the
  root of
 the
repository. We then append path to base_path to generate that
 absolute path

Re: Sourcegear Vault

2009-08-18 Thread schuijo

Christian,

It does, but requires a login first.  It has a SOAP interface defined,
but SourceGear highly recommends NOT using it.

I have a Python question for you (sorry, until a couple weeks ago I
never even heard of Python ;-)

It seems the (time-wise) expensive steps in this Vault integration are
the Java VM for the Java client, and the login step each time the CLC
is called.  I'm thinking that creating some form of a DLL interface
that will stay logged into Vault would greatly improve our response
times.  Does Python have support for DLL integration?  COM?

Thanks!


On Aug 17, 1:23 pm, Christian Hammond chip...@chipx86.com wrote:
 Hi John,

 Yeah, that seems a bit expensive, slow, and unscalable...

 Does Vault happen to have built-in support for looking at raw files from a
 web page, given a filename and revision? If so, it can take advantage of the
 new raw URL field I'm adding for Git.

 If not, we'll need to figure out a solution that doesn't require Java.

 Christian

 --
 Christian Hammond - chip...@chipx86.com
 Review Board -http://www.review-board.org
 VMware, Inc. -http://www.vmware.com



 On Mon, Aug 17, 2009 at 8:31 AM, schuijo schu...@gmail.com wrote:

  Thanks Christian, that seemed to be the case.

  Just a note to anyone attempting to integrate with Sourcegear's Vault:
  I originally attempted to use their Java CLC for portability, but each
  file in the review needed to contact the Vault server twice and each
  contact would (re)spawn the Java VM which was very expensive time
  wise.  I'm currently testing the system with the Win32 CLC and it is
  slow, but usable.  I'm considering looking into the possiblity of
  batching the contacts to the Vault server...time permitting.

  Thanks again for all your help Christian!!
  John

  On Aug 12, 7:21 pm, Christian Hammond chip...@chipx86.com wrote:
   Hi,

   It's possible that when you use the cache function, it's returning
   cached data from some older, broken attempt. If you reenable the
   caching and then fully clear the cache and try again, does it work?

   Christian

   On Wednesday, August 12, 2009, schuijo schu...@gmail.com wrote:

More:

I traced the source of that parameter to get_original_file() in
diffutils.py.  When I bypass the cache lookup and just return the
result of the fetch_file() sub-function I can display diffs properly,
although response is very slow as expected.  Any ideas where I should
look to determine why the cache contents would be wrong?  (I do have
the memcached server installed)

Thanks!

On Aug 12, 5:54 pm, schuijo schu...@gmail.com wrote:
I think I am very close now, but I have a problem in diffutils.py.
The second parameter in the parse() function (file I believe) contains
some invalid data, where does this get populated?

Thanks!

On Aug 11, 2:29 pm, Christian Hammond chip...@chipx86.com wrote:

 Hi,

 Path is the path to the file in the repository. If the path in the
  diff is
 always going to be absolute, then you can completely ignore
  base_path and
 just use path. We use base_path for Subversion, where the filenames
  in the
 diff are relative to the current directory rather than the root of
  the
 repository. We then append path to base_path to generate that
  absolute path.

 Christian

 --
 Christian Hammond - chip...@chipx86.com
 Review Board -http://www.review-board.org
 VMware, Inc. -http://www.vmware.com

 On Tue, Aug 11, 2009 at 10:54 AM, schuijo schu...@gmail.com
  wrote:

  Christian,

  Ok...I think I've severely bitten off more than I can chew, but
  I'm
  trying to forge my way through this.  I've been modifying
  post-review
  to add Vault support, and appear to have it working to the point
  where
  it seems to be attempting to contact the Vault server while
  uploading
  the diff.  The point I'm a little lost/confused on is how to
  represent
  Vault in the RepositoryInfo class.  What exactly are path and
  base_path and how are they used?  (hopefully this will help me to
  determine what need to be populated in there for Vault)

  Thanks!

  On Jul 28, 4:05 pm, Christian Hammond chip...@chipx86.com
  wrote:
   There are some threads on the mailing list about doing this, but
  they're
  not
   exactly step-by-step tutorials. The best reference right now is
  the
   scmtools/*.py files.

   Basically, you'll create a subclass of SCMTool that does the
  following:

   1) Grabs a file from a repository, given a file path and
  revision.
   2) Provide a DiffParser subclass that handles pulling out
  filenames and
   revisions and any other necessary data from a diff (most of the
  code for
  all
   this is common, so you just hook into things -- see the other
  files for
   examples).
   3) If Vault has a concept of server-side changesets (you
  register a
   changeset

Re: Sourcegear Vault

2009-08-12 Thread schuijo

More:

I traced the source of that parameter to get_original_file() in
diffutils.py.  When I bypass the cache lookup and just return the
result of the fetch_file() sub-function I can display diffs properly,
although response is very slow as expected.  Any ideas where I should
look to determine why the cache contents would be wrong?  (I do have
the memcached server installed)

Thanks!

On Aug 12, 5:54 pm, schuijo schu...@gmail.com wrote:
 I think I am very close now, but I have a problem in diffutils.py.
 The second parameter in the parse() function (file I believe) contains
 some invalid data, where does this get populated?

 Thanks!

 On Aug 11, 2:29 pm, Christian Hammond chip...@chipx86.com wrote:



  Hi,

  Path is the path to the file in the repository. If the path in the diff is
  always going to be absolute, then you can completely ignore base_path and
  just use path. We use base_path for Subversion, where the filenames in the
  diff are relative to the current directory rather than the root of the
  repository. We then append path to base_path to generate that absolute path.

  Christian

  --
  Christian Hammond - chip...@chipx86.com
  Review Board -http://www.review-board.org
  VMware, Inc. -http://www.vmware.com

  On Tue, Aug 11, 2009 at 10:54 AM, schuijo schu...@gmail.com wrote:

   Christian,

   Ok...I think I've severely bitten off more than I can chew, but I'm
   trying to forge my way through this.  I've been modifying post-review
   to add Vault support, and appear to have it working to the point where
   it seems to be attempting to contact the Vault server while uploading
   the diff.  The point I'm a little lost/confused on is how to represent
   Vault in the RepositoryInfo class.  What exactly are path and
   base_path and how are they used?  (hopefully this will help me to
   determine what need to be populated in there for Vault)

   Thanks!

   On Jul 28, 4:05 pm, Christian Hammond chip...@chipx86.com wrote:
There are some threads on the mailing list about doing this, but they're
   not
exactly step-by-step tutorials. The best reference right now is the
scmtools/*.py files.

Basically, you'll create a subclass of SCMTool that does the following:

1) Grabs a file from a repository, given a file path and revision.
2) Provide a DiffParser subclass that handles pulling out filenames and
revisions and any other necessary data from a diff (most of the code for
   all
this is common, so you just hook into things -- see the other files for
examples).
3) If Vault has a concept of server-side changesets (you register a
changeset with a description, and other data, and the server always 
knows
what you have checked out on the client) then you'll need to implement
get_changeset().

So the general model is that this code will have three classes:

1) VaultTool
2) VaultDiffParser
3) VaultClient

VaultTool will be a subclass of SCMTool and will be what Review Board
   talks
to.

VaultDiffParser will be a subclass of DiffParser and will override
   functions
to parse revision info out of a diff.

VaultClient will be a wrapper around the command line tool, which
VaultClient will talk to.

Now, let's talk diffs. Many revision control systems provide tools that
generate diffs unsuitable for Review Board, and sometimes we have to 
work
around them. If vault's tool generates a diff containing revision
information for a file that can be used to pull data from the 
repository,
then we're good. If not, you'll need to implement this in post-review.
Basically, generate a custom diff, or post-process the generated diff, 
to
stuff revision information in. Then VaultDiffParser will parse that out.
You'll see this done for Perforce and many others in post-review.

Christian

--
Christian Hammond - chip...@chipx86.com
Review Board -http://www.review-board.org
VMware, Inc. -http://www.vmware.com

On Tue, Jul 28, 2009 at 1:42 PM, schuijo schu...@gmail.com wrote:

 I couldn't locate a Python API for Vault, but they do have a command
 line tool.  Is there a document or thread detailing how to implement
 the interface?

 Thanks!

 On Jul 28, 3:00 pm, Christian Hammond chip...@chipx86.com wrote:
  Not to my knowledge. Some have talked about wanting it, but I don't
   know
 if
  anyone's working on it. If you'd like to work on it, we'll provide
 guidance.

  The only real requirement is that there's a command line tool or
   Python
 API
  for grabbing a file from a remote server. Everything else can be 
  done
   by
 us.
  It does help, though, if the tool/API can generate a suitable diff,
   or at
  least one we can post-process.

  Christian

  --
  Christian Hammond - chip...@chipx86.com
  Review Board -http://www.review-board.org
  VMware, Inc. -http://www.vmware.com

Re: Sourcegear Vault

2009-08-11 Thread schuijo

Christian,

Ok...I think I've severely bitten off more than I can chew, but I'm
trying to forge my way through this.  I've been modifying post-review
to add Vault support, and appear to have it working to the point where
it seems to be attempting to contact the Vault server while uploading
the diff.  The point I'm a little lost/confused on is how to represent
Vault in the RepositoryInfo class.  What exactly are path and
base_path and how are they used?  (hopefully this will help me to
determine what need to be populated in there for Vault)

Thanks!


On Jul 28, 4:05 pm, Christian Hammond chip...@chipx86.com wrote:
 There are some threads on the mailing list about doing this, but they're not
 exactly step-by-step tutorials. The best reference right now is the
 scmtools/*.py files.

 Basically, you'll create a subclass of SCMTool that does the following:

 1) Grabs a file from a repository, given a file path and revision.
 2) Provide a DiffParser subclass that handles pulling out filenames and
 revisions and any other necessary data from a diff (most of the code for all
 this is common, so you just hook into things -- see the other files for
 examples).
 3) If Vault has a concept of server-side changesets (you register a
 changeset with a description, and other data, and the server always knows
 what you have checked out on the client) then you'll need to implement
 get_changeset().

 So the general model is that this code will have three classes:

 1) VaultTool
 2) VaultDiffParser
 3) VaultClient

 VaultTool will be a subclass of SCMTool and will be what Review Board talks
 to.

 VaultDiffParser will be a subclass of DiffParser and will override functions
 to parse revision info out of a diff.

 VaultClient will be a wrapper around the command line tool, which
 VaultClient will talk to.

 Now, let's talk diffs. Many revision control systems provide tools that
 generate diffs unsuitable for Review Board, and sometimes we have to work
 around them. If vault's tool generates a diff containing revision
 information for a file that can be used to pull data from the repository,
 then we're good. If not, you'll need to implement this in post-review.
 Basically, generate a custom diff, or post-process the generated diff, to
 stuff revision information in. Then VaultDiffParser will parse that out.
 You'll see this done for Perforce and many others in post-review.

 Christian

 --
 Christian Hammond - chip...@chipx86.com
 Review Board -http://www.review-board.org
 VMware, Inc. -http://www.vmware.com



 On Tue, Jul 28, 2009 at 1:42 PM, schuijo schu...@gmail.com wrote:

  I couldn't locate a Python API for Vault, but they do have a command
  line tool.  Is there a document or thread detailing how to implement
  the interface?

  Thanks!

  On Jul 28, 3:00 pm, Christian Hammond chip...@chipx86.com wrote:
   Not to my knowledge. Some have talked about wanting it, but I don't know
  if
   anyone's working on it. If you'd like to work on it, we'll provide
  guidance.

   The only real requirement is that there's a command line tool or Python
  API
   for grabbing a file from a remote server. Everything else can be done by
  us.
   It does help, though, if the tool/API can generate a suitable diff, or at
   least one we can post-process.

   Christian

   --
   Christian Hammond - chip...@chipx86.com
   Review Board -http://www.review-board.org
   VMware, Inc. -http://www.vmware.com

   On Tue, Jul 28, 2009 at 12:12 PM, schuijo schu...@gmail.com wrote:

Is anyone working on support for Sourcegear's Vault?

Thanks!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
reviewboard group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---



Sourcegear Vault

2009-07-28 Thread schuijo

Is anyone working on support for Sourcegear's Vault?

Thanks!

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
reviewboard group.
To post to this group, send email to reviewboard@googlegroups.com
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en
-~--~~~~--~~--~--~---