Около полутора лет назад мы анонсировали поддержку svn, которая позволила ограниченно использовать репозитории GitHub через клиенты subversion.

Сегодня мы запускаем новую улучшенную поддержку svn.

Что нового?




URL


Боль��е не надо использовать svn.github.com, теперь вы в svn клиенте можете использовать тот же url, что и в git. Репозитории все еще доступны по svn.github.com, но вам следует их мигрировать, т.к. svn.github.com скоро будет выключен.

$ git clone github.com/nickh/dynashard git-ds
Cloning into git-ds…
remote: Counting objects: 135, done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 135 (delta 65), reused 128 (delta 58)
Receiving objects: 100% (135/135), 31.19 KiB, done.
Resolving deltas: 100% (65/65), done.

$ svn checkout github.com/nickh/dynashard svn-ds
A svn-ds/branches
A svn-ds/branches/shard_names
A svn-ds/branches/shard_names/.document
A svn-ds/branches/shard_names/.gitignore

A svn-ds/trunk/spec/support
A svn-ds/trunk/spec/support/factories.rb
A svn-ds/trunk/spec/support/models.rb
Checked out revision 25.


Бранчи


Репозитории маппятся так, чтобы выглядить в svn «стандартно». Например, ваш master бранч станет trunk, а остальные бранчи осядут в branches/

$ git ls-remote --heads origin
7523fabdfea89c38b10afde0ec2f07095de8c9a2 refs/heads/master
2ed6303f260abe2bd76d231fe173aeef833b1c9e refs/heads/shard_names

$ svn ls
branches/
trunk/

$ svn ls trunk
.document
.gitignore

dynashard.gemspec
lib/
spec/

$ svn ls branches
shard_names/


Частичный checkout


Делайте checkout и up только тех частей репозитория, которые вам нужны

$ svn co -N github.com/nickh/dynashard svn-ds
Checked out revision 25.

$ svn up -N branches
A branches
Updated to revision 25.

$ svn up trunk
A trunk
A trunk/.document
A trunk/.gitignore

A trunk/spec/support
A trunk/spec/support/factories.rb
A trunk/spec/support/models.rb
Updated to revision 25.


Коммиты


Редактируйте файлы, создавайте бранчи и заливайте ваши изменения.

$ svn cp trunk branches/wip
$ svn commit -m 'Created a topic branch'
Adding branches/wip
Committed revision 26.

$ git ls-remote --heads origin
7523fabdfea89c38b10afde0ec2f07095de8c9a2 refs/heads/master
2ed6303f260abe2bd76d231fe173aeef833b1c9e refs/heads/shard_names
7523fabdfea89c38b10afde0ec2f07095de8c9a2 refs/heads/wip

$ echo '# Important change' >> branches/wip/README.md
$ svn commit -m 'Made an important change'
Sending branches/wip/README.md
Transmitting file data.
Committed revision 27.


Планы:


Мы продолжим улучшать интеграцию с subversion для того, чтобы смешанным командам стало легче работать вместе. Ожидайте следующих изменений:
  • слияние и ребейс бранчей
  • имена пользователей в коммитах
  • поддержка аннотаций и ревью кода (blame)
  • поддержка маппинга trunk на git-branch отличный от master