git через SSH не устанавливая ничего на сервере
От: Mazay Россия  
Дата: 23.05.15 15:50
Оценка:
Есть git-репозиторий. Требуется работать с ним с двух компов — с работы и из дома. Есть сервер VPS c доступом по SSH. Очевидная идея — сделать на сервере bare клон и делать на него push/pull из дома и с работы. Проблема в том, что на сервера мало места и я не хочу ставить на него git. Только SSH-сервер. А для типичного сценария git там зачем-то нужен:
git push --set-upstream ssh://user@host.ru:8022/home/user/prg.git master
user@host.ru's password: 
zsh:1: command not found: git-receive-pack
fatal: Could not read from remote repository.


Как обойтись без git-а не сервере и зачем от там вообще нужен?
Главное гармония ...
git ssh
Re: git через SSH не устанавливая ничего на сервере
От: Zhendos  
Дата: 23.05.15 17:12
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Есть git-репозиторий. Требуется работать с ним с двух компов — с работы и из дома. Есть сервер VPS c доступом по SSH. Очевидная идея — сделать на сервере bare клон и делать на него push/pull из дома и с работы. Проблема в том, что на сервера мало места и я не хочу ставить на него git. Только SSH-сервер. А для типичного сценария git там зачем-то нужен:

M>
M>git push --set-upstream ssh://user@host.ru:8022/home/user/prg.git master
M>user@host.ru's password: 
M>zsh:1: command not found: git-receive-pack
M>fatal: Could not read from remote repository.
M>


M>Как обойтись без git-а не сервере и зачем от там вообще нужен?


sshfs -p 8022  mount_points/vps user@host.ru:/
git push/pull mount_points/vps/home/user/prg.git
Re: git через SSH не устанавливая ничего на сервере
От: . Великобритания  
Дата: 23.05.15 17:24
Оценка:
Здравствуйте, Mazay, Вы писали:

M> Как обойтись без git-а не сервере и зачем от там вообще нужен?

Имхо, никак особо не обойдёшься. Неужели у тебя лишних ~20Мб нет? Сейчас терабайтные винты копейки стоят...
Для push на сервере надо много чего делать, вплоть до запуска gc, притом безопасно расставляя локи. Ещё и хуки бывают.
Можно через UNC-путь, через samba, но это будет медленнее.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: git через SSH не устанавливая ничего на сервере
От: Mazay Россия  
Дата: 24.05.15 05:43
Оценка:
Здравствуйте, Zhendos, Вы писали:

Z>
Z>sshfs -p 8022  mount_points/vps user@host.ru:/
Z>git push/pull mount_points/vps/home/user/prg.git
Z>


Собственно пока так и сделал. Только не хочется постоянно держать примонтированную папку и mount/umount тоже не хочется делать. Хочется просто пароль вводить на каждый push/pull.
Главное гармония ...
Re[2]: git через SSH не устанавливая ничего на сервере
От: Mazay Россия  
Дата: 24.05.15 05:54
Оценка:
Здравствуйте, ., Вы писали:

.>Здравствуйте, Mazay, Вы писали:


M>> Как обойтись без git-а не сервере и зачем от там вообще нужен?

.>Имхо, никак особо не обойдёшься. Неужели у тебя лишних ~20Мб нет? Сейчас терабайтные винты копейки стоят...
.>Для push на сервере надо много чего делать, вплоть до запуска gc, притом безопасно расставляя локи. Ещё и хуки бывают.
.>Можно через UNC-путь, через samba, но это будет медленнее.

Это VPS за $10 в год на KVM и c IPv4. Там всё очень по-спартански — из 1,5 ГБ свободны только 110 МБ. Так что 20 МБ жалко.
В чём проблема делать локи/хуки/ГЦ через SSH? Если просто примонтировать папку через sshfs то всё работает, git сам может работать через ssh. Я надеялся, что это нормально реализовано. Скорость мне не важна — проект маленький.
Главное гармония ...
Re[3]: git через SSH не устанавливая ничего на сервере
От: Zhendos  
Дата: 24.05.15 07:16
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Здравствуйте, Zhendos, Вы писали:


Z>>
Z>>sshfs -p 8022  mount_points/vps user@host.ru:/
Z>>git push/pull mount_points/vps/home/user/prg.git
Z>>


M>Собственно пока так и сделал. Только не хочется постоянно держать примонтированную папку и mount/umount тоже не хочется делать. Хочется просто пароль вводить на каждый push/pull.


"тыжпрограммист". Замени git на vpsgit:
[code]
cat vpsgit:
#!/bin/bash
if [ -z "$(cat /proc/mounts | grep sshfs | grep vps)" ]; then
sshfs vps
fi
git $@
fusermount -u path/to/vps

можно еще autofs использовать:

http://techgotcha.com/linux-how-to-mount-remote-storage-on-demand/
Re[3]: git через SSH не устанавливая ничего на сервере
От: SkyDance Земля  
Дата: 24.05.15 10:01
Оценка:
M>Это VPS за $10 в год на KVM и c IPv4. Там всё очень по-спартански — из 1,5 ГБ свободны только 110 МБ. Так что 20 МБ жалко.

Это получится совсем уж крошечный репозиторий...
Re[3]: git через SSH не устанавливая ничего на сервере
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.05.15 11:17
Оценка:
Здравствуйте, Mazay, Вы писали:

M> Это VPS за $10 в год на KVM и c IPv4. Там всё очень по-спартански — из 1,5 ГБ свободны только 110 МБ. Так что 20 МБ жалко.


Как вариант, можешь часть данных зачистить (гуглить по словам "Reduce size of a Linux installation for embedded systems" и им подобным) — там маны/доки/копирайты зачистить, количество логов уменьшить.

M> В чём проблема делать локи/хуки/ГЦ через SSH?

M> Если просто примонтировать папку через sshfs то всё работает, git сам может работать через ssh.

При работе через ssh на сервере запускается серверная часть git-а (по аналогии с rsync), по этому он должен быть установлен на серере. Серверная часть необходима, т.к. там не только локи/хуки, но и прямая работа с файлами.

При работе через sshfs у тебя добавляется слой абстракции, который позволяет работать как с локальной ФС.
Управляю вселенной не привлекая внимания санитаров.
Re[4]: git через SSH не устанавливая ничего на сервере
От: Ops Россия  
Дата: 24.05.15 18:03
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>При работе через ssh на сервере запускается серверная часть git-а (по аналогии с rsync), по этому он должен быть установлен на серере. Серверная часть необходима, т.к. там не только локи/хуки, но и прямая работа с файлами.

rsync по ssh без серверной части работает. Она только для родного протокола нужна.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: git через SSH не устанавливая ничего на сервере
От: . Великобритания  
Дата: 24.05.15 18:16
Оценка:
Здравствуйте, Ops, Вы писали:

Ops> AB>При работе через ssh на сервере запускается серверная часть git-а (по аналогии с rsync), по этому он должен быть установлен на серере. Серверная часть необходима, т.к. там не только локи/хуки, но и прямая работа с файлами.

Ops> rsync по ssh без серверной части работает. Она только для родного протокола нужна.
О, а это идея — git вроде rsync-протокол из коробки поддерживает.
avalon/1.0.432
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: git через SSH не устанавливая ничего на сервере
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.05.15 20:51
Оценка:
Здравствуйте, Ops, Вы писали:

Ops> rsync по ssh без серверной части работает. Она только для родного протокола нужна.


Можешь показать пример?
Управляю вселенной не привлекая внимания санитаров.
Re[6]: git через SSH не устанавливая ничего на сервере
От: Ops Россия  
Дата: 24.05.15 21:56
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Можешь показать пример?


Похоже, наврал. Смутило то, что он без запущенного rsyncd работает, оказалось, сам rsync все равно нужен на удаленной машине.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: git через SSH не устанавливая ничего на сервере
От: Anton Batenev Россия https://github.com/abbat
Дата: 24.05.15 22:16
Оценка:
Здравствуйте, Ops, Вы писали:

Ops> AB>Можешь показать пример?

Ops> Похоже, наврал. Смутило то, что он без запущенного rsyncd работает, оказалось, сам rsync все равно нужен на удаленной машине.

Совершенно верно. Там немного неочевидная схема, когда на удаленной машине rsync становится сервером. Тоже самое и с git.
Управляю вселенной не привлекая внимания санитаров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.