Add an API for getting the branch identifier from a Git or SVN checkout.
authormatthew_hanson@apple.com <matthew_hanson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Sep 2016 01:14:59 +0000 (01:14 +0000)
committermatthew_hanson@apple.com <matthew_hanson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Sep 2016 01:14:59 +0000 (01:14 +0000)
commit0a053e52ed819c0dbda9df0d524401b864f93559
tree519cc833ab32a75bcb07666fb4afd3eebf5e51b4
parent5ce2300101c8467e6e823680440bbf751ba75a6c
Add an API for getting the branch identifier from a Git or SVN checkout.
https://bugs.webkit.org/show_bug.cgi?id=151570
rdar://problem/17959831

Reviewed by David Kilzer.

This patch adds a function called svnIdentifierForPath. This function returns either "trunk",
the name of the tag, or the name of the branch, as appropriate. This function is necessary for
a VCSUtils client that is not checked in to the WebKit project.

This patch also breaks up pathRelativeToSVNRepositoryRootForPath into four functions:
- pathRelativeToSVNRepositoryRootForPath
- svnInfoForPath
- svnURLForPath
- svnRepositoryRootForPath

This allows us to reuse logic from pathRelativeToSVNRepositoryRootForPath in svnIdentifierForPath and
allows clients of VCSUtils to extract what arbitrary information from the `svn info` command regardless
of SCM.

* Scripts/VCSUtils.pm:
(svnInfoForPath):
Copied logic that previously lived in pathRelativeToSVNRepositoryRootForPath.
Make code safe to use for a path, and not just for the CWD.

(svnURLForPath):
Calls svnInfoForPath and extracts the URL.

(svnRepositoryRootForPath):
Calls svnInfoForPath and extracts the Repository Root.

(svnIdentifierForPath):
Calls pathRelativeToSVNRepositoryRootForPath and extracts the repository identifier.

(pathRelativeToSVNRepositoryRootForPath):
Now uses svnURLForPath and svnRepositoryRootForPath instead of being responsible for
determining both values.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@206283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools/ChangeLog
Tools/Scripts/VCSUtils.pm