Git akzeptiert eine große Anzahl von Repository-URL-Ausdrücken:
* ssh://user@host.xz:port/path/to/repo.git/
* ssh://user@host.xz/path/to/repo.git/
* ssh://host.xz:port/path/to/repo.git/
* ssh://host.xz/path/to/repo.git/
* ssh://user@host.xz/path/to/repo.git/
* ssh://host.xz/path/to/repo.git/
* ssh://user@host.xz/~user/path/to/repo.git/
* ssh://host.xz/~user/path/to/repo.git/
* ssh://user@host.xz/~/path/to/repo.git
* ssh://host.xz/~/path/to/repo.git
* user@host.xz:/path/to/repo.git/
* host.xz:/path/to/repo.git/
* user@host.xz:~user/path/to/repo.git/
* host.xz:~user/path/to/repo.git/
* user@host.xz:path/to/repo.git
* host.xz:path/to/repo.git
* rsync://host.xz/path/to/repo.git/
* git://host.xz/path/to/repo.git/
* git://host.xz/~user/path/to/repo.git/
* http://host.xz/path/to/repo.git/
* https://host.xz/path/to/repo.git/
* /path/to/repo.git/
* path/to/repo.git/
* ~/path/to/repo.git
* file:///path/to/repo.git/
* file://~/path/to/repo.git/
Für eine Anwendung, die ich geschrieben habe und die das Parsen dieser Ausdrücke erfordert ( YonderGit ) habe ich die folgenden (Python) regulären Ausdrücke gefunden:
(1) '(\w+://)(.+@)*([\w\d\.]+)(:[\d]+){0,1}/*(.*)'
(2) 'file://(.*)'
(3) '(.+@)*([\w\d\.]+):(.*)'
Für die meisten Repository-URLs, denen man "in freier Wildbahn" begegnet, dürfte (1) ausreichen.
0 Stimmen
Ich bin nicht davon überzeugt, dass ein regulärer Ausdruck die beste Lösung für das Parsen dieser Syntax ist, auch wenn viele anderer Meinung sind. Siehe blog.codinghorror.com/