Использование команд удаленного контроля версий (VCS) в локальной файловой системе без клиента VCS - PullRequest
3 голосов
/ 19 февраля 2010

Предположим, у меня есть две машины:

Клиент

  • Давайте предположим, что окно Windows
  • Предположим, что это окно разработчика, поэтому все файлыбыть помещенным под управление исходным кодом будет здесь
  • Давайте предположим, что здесь не установлено никакого управления исходным кодом

Сервер

  • Предположим, что окно linux
  • Давайте предположим, что Git является выбранным исходным элементом управления (установлен)
  • SSH включен

Вопрос: можно ли подключиться от клиента к серверу, скажем, через SSH дляради аргумента и вызывать команды Git после входа в систему на сервере, но в файлах клиентской (локальной) системы?

например, SSH-клиент (только ssh) ----- SSH-сервер (ssh)и git, установленный здесь)

            send command --> command: checkout to <client path>
            send command---> command: check-in from <client path>

Обоснование: Другими словами, вместо установки программного клиента для VCS, я бы хотел, чтобы SSH выступал в качестве активатора;В случае с Git, хотя mysys для git и cygwin-решений существуют, у каждого есть свои недостатки - поэтому я хотел бы скомпилировать / настроить полнофункциональную версию на Linux-боксе, но все же разрешить управление исходным кодом изwindows.

Возможно ли это?(не должен быть SSH, подойдет любой протокол, если для этого не требуется программный клиент VCS)

Могу ли я подключиться к серверу по ssh, смонтировать путь клиента к исходным файлам, а затем выполнить команды контроля версий для всех файлов этого пути?

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Могу ли я подключиться к серверу по ssh, смонтировать путь клиента к исходным файлам, а затем выполнить команды управления версиями для всех файлов этого пути?

Да, вы могли бы, очень легко. Взгляните на SAMBA для Linux или установите службы Windows для Unix, и клиентская коробка будет работать как NFS-сервер; в любом случае это будет сделано.

Что касается приложений linux, то если он монтируется в /, то тот факт, что для доступа к файлам ему нужно пройти по сети, не имеет значения - драйверы файловой системы заботятся об этом бите.

Таким образом, да, если вы смонтировали c:\mysource на своем Linux-сервере как /mnt/windows/c/mysource, нет никаких причин, по которым вы не можете использовать git as в окне linux для файлов в этом каталоге. Результаты, конечно, будут переданы по сети.

0 голосов
/ 19 февраля 2010

В дополнение к ответу Ninefingers, если удаленный компьютер не может напрямую связаться с клиентским компьютером, вы можете использовать переадресацию порта SSH. Эта функция доступна в OpenSSH, Putty и многих других клиентах.

Обычно вы используете переадресацию портов для доступа к службе в сети на удаленном компьютере. Например, чтобы получить доступ к службе HTTP на 10.0.0.4 в сети удаленного сервера SSH, вы должны сделать:

ssh -L 8888:10.0.0.4:80 user@remotehost

Затем откройте localhost:8888 с помощью браузера на клиентском компьютере.

Однако вы можете использовать то же самое в обратном порядке и сделать локальный сервис доступным для удаленного компьютера. Для общих папок Windows (SMB) вы можете попробовать следующее:

ssh -R 9445:localhost:445 user@remotehost

(Вы должны найти эквивалентную опцию в любом SSH-клиенте, который вы используете в Windows.)

А затем смонтировать общий ресурс где-нибудь из удаленной оболочки:

mount -t cifs //localhost:9445/SomeShare /mnt/mountpoint

Я должен добавить, что я не проверял это лично, но это стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...