Ok, I can understand that. But I don't think that check should be during the def_repository_info function. I imagine the "check_install" function should probably happen somewhere higher up at the beginning of the process instead of it's current location where the error that would come back from a P4 install not finding the "p4" executable is currently that a checkout couldn't be found. That led me astray for quite some time.
On Aug 29, 3:42 pm, Christian Hammond <chip...@chipx86.com> wrote: > With the exception, would this be used to print an error and fail if p4 > isn't found? > > The reason we return None upon failure is that not all installs will use p4, > and it actually shouldn't be failing if p4 is not installed. That check > there is to see if p4 help can be run, and if not, we assume that that type > of repository is just simply not supported on this system. > > I might be misunderstanding, though. > > What may be nice is to have some sort of option that lists all supported > repository types, or checks if a certain provided type is supported, so that > the calling script could verify this (basically an assertion check) before > calling post-review with the necessary options. > > Christian > > -- > Christian Hammond - chip...@chipx86.com > Review Board -http://www.reviewboard.org > VMware, Inc. -http://www.vmware.com > > > > On Thu, Aug 26, 2010 at 4:02 PM, RShelley <12gaugeme...@gmail.com> wrote: > > Well, I got past the P4PASSWD issue and then began getting the error > > "The current directory does not contain a checkout from a supported > > source code repository." After much digging, I found that the error > > is actually wrong. > > > The PerforceClient's "def_repository_info" function checks for a P4 > > install first: > > > def get_repository_info(self): > > if not check_install('p4 help'): > > return None > > > data = execute(["p4", "info"], ignore_errors=True) > > > If "p4" cannot be found for "p4 help", it returns None, and the > > calling function assumes that a repository wasn't found, not that P4 > > couldn't be found. As it turns out, the service running this script > > is changing the PATH and post-review cannot find P4, so this check > > fails. More specifically, this is running from Hudson, and a recent > > upgrade of the app changed how environment variables cascaded to child > > processes, so when Hudson was upgraded, the PATH environment variables > > weren't propagated, and post-review couldn't find P4. > > > I'd like to suggest that this "if" check actually throw an exception, > > and not simply returns None. Thoughts? > > > -Ryan > > > On Aug 26, 1:47 am, Christian Hammond <chip...@chipx86.com> wrote: > > > I think it's definitely reasonable to have a parameter for this. > > > > The perforce.py mentioned above would be for Review Board. With > > post-review, > > > you'd be looking for postreview.py in rbtools. > > > > What I'd advise is to check out a copy of rbtools from Git and add a > > > --p4-ticket parameter. It shouldn't be too hard. You can see how the > > other > > > options work (which are defined near the bottom of the file), and make > > use > > > of the passed option to pass the right thing to p4. I don't know about > > the > > > ticketing stuff well enough to know what needs to be passed or set. If > > you > > > can get it working, though, I'll commit a patch so you won't have to > > > maintain a fork for too long. > > > > Christian > > > > -- > > > Christian Hammond - chip...@chipx86.com > > > Review Board -http://www.reviewboard.org > > > VMware, Inc. -http://www.vmware.com > > > > On Wed, Aug 25, 2010 at 4:46 PM, RShelley <12gaugeme...@gmail.com> > > wrote: > > > > Dana, that sums it up pretty well. My problem is that the post-commit > > > > command isn't being run by the user, it's run from a script on another > > > > box (so it's not using P4V). "p4 login" is called first to attempt to > > > > login and obtain a ticket and then I can use the ticket for future > > > > commands, but post-review doesn't accept a ticket parameter and p4 > > > > isn't taking it from the environment. If I could pass it to post- > > > > review with the rest of the p4 properties, it'd be splendid. > > > > > On Aug 25, 3:04 pm, "Dana Lacoste" <dlaco...@aperio.com> wrote: > > > > > So, to summarize in case someone is searching through these archives > > > > > later: > > > > > > Perforce, when security is turned on (this is a p4d server setting) > > will > > > > > have different restrictions on what can and can't be done with the > > > > > password on the CLIENT (i.e. you can't necessarily simply set an > > > > > environment variable and run with it. For reference, see the P4 > > > > > SysAdmin Guide athttp:// > > > >www.perforce.com/perforce/r10.1/manuals/p4sag/03_superuser.html#1 > > > > > 081537 ) > > > > > > User RShelley is running into issues with this and is having > > difficulty. > > > > > >http://reviews.reviewboard.org/r/1537/diff/hasapatch (which was > > > > > discarded) which "handles" this situation for user tag_98007work. > > > > > > But, if you're on Windows (or potentially in some other > > environments), > > > > > you're quite possibly using a .egg/.exe "compiled" version of Review > > > > > Board and therefore it may be difficult to implement patches to the > > .py > > > > > Python source. If you use the interpreted version, then you can > > apply > > > > > the patch and things might work for you (if your environment is like > > > > > that of user tag_98007work ) > > > > > > Does that seem to sum things up OK? > > > > > > Note that I don't see any of the problems described here, but I had > > to > > > > > do the following to get post-review to work for everyone: > > > > > 1 - Everyone has to have the following environment set: P4PORT, > > P4USER, > > > > > P4CLIENT (NOT P4PASSWD!) > > > > > 2 - Everyone has to be running P4V when they run post-review (I > > actually > > > > > added it as a tool to P4V so the users can right click on any > > changelist > > > > > and hit "submit to reviewboard" and nobody needs to use a command > > > > > line/shell command at all) > > > > > With perforce 2009.2/2010.1 this works fine with no problems : the > > > > > ticket from P4V is visible to the p4 command line (called from > > > > > post-review) and everything's fine (this is using latest RBTools > > > > > installed with the command "easy_install -U RBTools" and review board > > > > > 1.5 beta 2) > > > > > > Dana Lacoste > > > > > > -----Original Message----- > > > > > From: reviewboard@googlegroups.com [mailto: > > reviewbo...@googlegroups.com] > > > > > > On Behalf Of RShelley > > > > > Sent: Wednesday, August 25, 2010 1:37 PM > > > > > To: reviewboard > > > > > Subject: Re: post-review and P4PASSWD > > > > > > My head hurts... Perforce consistently gives me reasons to not like > > > > > it... Git can't come soon enough. > > > > > > Thanks for trying, I appreciate it! > > > > > -- > > > > Want to help the Review Board project? Donate today at > > > >http://www.reviewboard.org/donate/ > > > > Happy user? Let us know athttp://www.reviewboard.org/users/ > > > > -~----------~----~----~----~------~----~------~--~--- > > > > To unsubscribe from this group, send email to > > > > reviewboard+unsubscr...@googlegroups.com<reviewboard%2bunsubscr...@googlegr > > > > oups.com> > > <reviewboard%2bunsubscr...@googlegr oups.com> > > > > For more options, visit this group at > > > >http://groups.google.com/group/reviewboard?hl=en > > > -- > > Want to help the Review Board project? Donate today at > >http://www.reviewboard.org/donate/ > > Happy user? Let us know athttp://www.reviewboard.org/users/ > > -~----------~----~----~----~------~----~------~--~--- > > To unsubscribe from this group, send email to > > reviewboard+unsubscr...@googlegroups.com<reviewboard%2bunsubscr...@googlegr > > oups.com> > > For more options, visit this group at > >http://groups.google.com/group/reviewboard?hl=en -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~----------~----~----~----~------~----~------~--~--- 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