Re: git-svn: handling merge-base failures
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Dec 23, 2009, 20:09 UTC
- Message-ID
- <20091223200936.GA13735@dcvr.yhbt.net>
- In-Reply-To
- <931B0483-7628-488E-BB9F-C40346353149@apple.com>
Andrew Myrick <amyrick@apple.com> wrote:
Show 8 quoted lines
> One of my projects is failing to clone because merge-base is failing > on one of the revisions; the branch is a partial branch, so merge-base > can't find a common ancestor with trunk. I'd like to catch the > exception that command_oneline should throw when merge-base fails, but > my perl is very rusty and I'm struggling to get git-svn.perl to grok > the Git::Error::Command class. What is the appropriate way to import > that class? Or more generally, is there a better solution to handling > this error case?
Hi Andrew,
Git::Error::Command should be imported with the rest of Git.pm
It's a special way of doing exceptions in Perl which I don't see much point of... Looking at git-send-email as an example, it does this:
use Error qw(:try); use Git;
try {
# something that will throw
} catch Git::Error::Command with {
# error handling
}A more standard approach in Perl is just:
eval {
# something that will die
};
if ($@) {
# error handling
}But yes, it is Perl after all and TMTOWTDI :)
-- Eric Wong