Pull to refresh

GitHub совершенствует поддержку svn

Reading time 2 min
Views 3.2K
Original author: nickh
Около полутора лет назад мы анонсировали поддержку 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
Tags:
Hubs:
+36
Comments 8
Comments Comments 8

Articles