andrep / git-svn-clone-externals Goto Github PK
View Code? Open in Web Editor NEWSimple shell script to import svn:externals into a local git-svn repository
Simple shell script to import svn:externals into a local git-svn repository
Hello,
Some of the projects I'm working on have more than one level of svn:externals.
projectA/
+projectB(svn:externals in projectA)/
.+projectC(svn:externals in projectB)/
It seems that git-svn-clone-externals does not make recursion, it could be a nice feature to add.
I'll try to give a shot at it, but i'm busy enough not to be able to add such a feature.
I had an issue in cloning large repositories. Took me a little while to track down (learned some more bash along the way), and I've created a fork which basically disables cloning the entire revision history for SVN externals. This allows large repos (like Symfony projects) to be cloned without waiting hours for everything to be indexed.
Just in case anybody had the same issue: https://github.com/MichaelMackus/git-svn-clone-externals
I tried the git-svn-clone-externals script right out of the repository on symfony right out of it's own svn repository and I got :
git reset --hard branches/1.0/lib
fatal: ambiguous argument 'branches/1.0/lib': unknown revision or path not in the working tree.
if i have externals in subsubfolders of project script does not update them
I'm on Mac OS X, so perhaps it's related to that.
I had an SVN external that ended with a slash, e.g. /public/service_support/
When local_directory is assigned, the directory is cleaned up with sed to remove the first slash, but not the trailing slash, so it produces:
public/service_support/
This then fails in do_link because ln doesn't like the trailing slash.
To fix, I piped through a second sed command, like so:
local_directory="$(echo
error below:
git svn fetch --all
git reset --hard branches/foo
fatal: Failed to resolve 'branches/foo' as a valid ref.
Our svn repos need an username and password:
git svn clone https://... -T trunk -b branches -t tags Client/src/...
Initialized empty Git repository in /home/eilemann/Software/...
Authentication realm: https://...:443 Subversion
Password for 'eilemann':
Authentication realm: https://...:443 Subversion
Username:
Use of uninitialized value $username in chomp at /usr/lib/git-core/git-svn line 4017, line 1.
error: git-svn died of signal 11
It appears as if git-svn-clone-externals doesn't work when the external specifies the revision to use:
$ git-svn-clone-externals
library/shindig/php/src -> 1094333
git svn clone -r 1094333 library/shindig/php/src
Using existing [svn-remote "svn"]
svn-remote.svn.fetch already set to track :refs/remotes/git-svn
$ git svn show-externals
# /
# /library/shindig/php/
/library/shindig/php/src -r 1094333 http://svn.apache.org/repos/asf/shindig/trunk/php/src
I'm having an issue that git-svn-clone-externals always fail with error:
svn_externals/http://svn/common/include/trunk@26 -> common/include
git svn fetch --all
Bad URL passed to RA layer: Illegal repository URL 'common/include' at /usr/local/share/perl/5.22.1/Git/SVN.pm line 148.
...
I then ran the command git svn show-externals
which produced the output:
/svn_externals/http://svn/common/include/trunk@26 common/include
/svn_externals/http://svn/crc/trunk@5567 crc
/svn_externals/http://svn/dualcores/trunk/mpc8641d/ella@3256 dualcores/mpc8641d/ella
...
svn version: 1.9.6
git version: 2.13.4
Thanks in advance,
York
When using "USE_SSH=yes" and having a svn:externals repository named "https" (for example), the bash substitution pattern for "svn+ssh" is replacing all matches with "svn+ssh".
say:
https://svn.repo.srv/svn/https/trunk
will be substitute with
svn+ssh://svn.repo.srv/svn/svn+ssh/trunk
The script seems to be parsing malformed URLs when I try on our repository.
$ ./git-svn-clone-externals
lib/vendor/http://svn.dwoo.org/trunk/lib -> dwoo
git svn clone dwoo lib/vendor/http://svn.dwoo.org/trunk/lib
Initialized empty Git repository in /home/drak/www/trunk/.git_externals/lib/vendor/http:/svn.dwoo.org/trunk/lib/.git/
Bad URL passed to RA layer: Illegal repository URL 'dwoo' at /usr/lib/git-core/git-svn line 1544
lib/vendor/http://svn.phpdoctrine.org/tags/1.2.1/lib -> Doctrine
git svn clone Doctrine lib/vendor/http://svn.phpdoctrine.org/tags/1.2.1/lib
Initialized empty Git repository in /home/drak/www/trunk/.git_externals/lib/vendor/http:/svn.phpdoctrine.org/tags/1.2.1/lib/.git/
Bad URL passed to RA layer: Illegal repository URL 'Doctrine' at /usr/lib/git-core/git-svn line 1544
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.