3

У меня есть SSH доступ ко многим серверам, где у меня нет привилегий root. Знаете ли вы какую-либо утилиту контроля версий, которая может работать с удаленными ssh-репозиториями, которые не устанавливают что-либо на удаленный сервер?

Я пробовал пустую папку репозитория git, но, кажется, требует установки скрипта / двоичного файла / на сервере. Я также не люблю git, потому что он не очень портативный. Портативные версии сделаны из слишком большого количества файлов

4 ответа4

3

Fossil - это распределенная система контроля версий, которая компилируется в Linux, Windows или Mac OS X в один двоичный файл. Репозитории поставляются со встроенным средством отслеживания ошибок и вики-автоматом, а один исполняемый файл может функционировать в качестве хост-сервера, поэтому к хранилищу можно получить удаленный доступ.

Fossil является вторым проектом, впервые разработанным Д. Ричардом Хиппом, первоначальным создателем SQLite (Fossil использует SQLite в качестве резервного хранилища, поэтому весь репозиторий находится в одном переносимом файле).

2

Похоже, что Bazaar может использовать «тупой сервер» на основе SFTP (Bazaar не требуется на стороне сервера) для доступа для чтения и записи.

Примечание: я никогда не использовал Bazaar, я только копался в его документации.

1

Как отмечает Крис Джонсен, Bazaar может загружать данные хранилища на сервер, используя различные протоколы, в том числе SFTP.

Фактически, способ, которым это работает, заключается в следующем: вы создаете репозиторий / ветку на локальном компьютере и пользователя Bazaar для отслеживания всех изменений. Базар хранит всю свою информацию в каталоге с именем «.bzr» в корневом каталоге этой ветви. Вы должны загрузить репозиторий / ветку на ваш сервер, используя ваш доступ SSH. Затем все последние изменения, внесенные в ветку, автоматически загружаются на сервер.

Чтобы сделать это, вы должны выполнить следующие действия:

  1. В каталоге, где находятся файлы, изменения которых вы хотите отслеживать, создайте новую ветку.

    bzr init
    
  2. Добавьте файлы, которые вы хотите отслеживать, в текущую ветку, чтобы Bazaar "контролировал их версию".

    bzr add file1 file2 directory1 directory2 ...
    
  3. Сделайте свой первый коммит в ветке. Этот первый коммит требуется, прежде чем вы сможете загрузить ветку на ваш сервер. Вы должны прочитать документацию или использовать справку Bazaar, чтобы узнать, как использовать команду "commit" (и как вводить сообщения о коммите).

    bzr commit
    
  4. Загрузите ветку на свой сервер, используя ваш доступ SSH. Bazaar автоматически запросит ваш пароль. Кроме того, вы можете настроить открытый ключ RSA, чтобы избежать необходимости каждый раз вводить пароль.

    bzr push sftp://user@domain:port/branch_location_on_server
    

    Вы можете опустить порт, если сервер SSH прослушивает порт 21 (по умолчанию). Если вы хотите, чтобы ветвь находилась в вашем домашнем каталоге, вы должны указать branch_location_on_server, начинающийся с "~/".

Все последующие коммиты будут автоматически загружены в это место на сервере.

Кроме того, вы также можете выполнить "commit", когда ваша машина не подключена к серверу, передав опцию «--local» команде "commit" или отменив привязку и привязав ветвь (bzr unbind/bzr bind)

Если вы хотите скачать эту ветку, вы можете сделать "заказ":

bzr co sftp://user@domain:port/branch_location_on_server
0

используйте rsync (о, подождите, вам также понадобится rsync на сервере :)), чтобы просто хранить репозитории mercurial / git / bzr с локального компьютера на серверах. Затем вы должны загрузить весь репозиторий рядом с вашей рабочей копией, а затем вы можете выполнить слияние.

чтобы иметь что-то полезное, я бы порекомендовал установить mercurial на сервер в вашем доме, возможно, локальная установка менее "сложна", чем установка git (которую вы также можете установить в вашем доме, кстати).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .