Как я могу настроить (GUI) локальную систему контроля версий на моем Mac? - PullRequest
0 голосов
/ 26 июля 2011

Я веб-разработчик. В моей компании есть сервер разработки, на котором мы все работаем напрямую. Нас только трое, все работают над разными проектами, так что нет проблем с людьми, которые перезаписывают работу друг друга. Поскольку мы так малы, никто не установил какой-либо контроль версий, и я не могу настаивать на этом для всех нас. Однако недавно я сломал часть своего собственного кода и больше не могу заставить его работать, и это заставляет меня захотеть установить какой-то контроль версий.

Вот как я бы хотел, чтобы это работало:

  1. Сделайте локальную копию моего проекта, которая существует на сервере разработки.
  2. Внести изменения на сервере разработки.
  3. После каждого существенного изменения фиксируйте мою локальную копию.
  4. Если новое изменение нарушило код на сервере разработки, можно будет извлечь предыдущую версию из локальной копии.

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

Я смотрел на GitBox и Версии, но не могу сказать, позволит ли какой-либо из них мне сделать локальную копию удаленного проекта, который не использует какой-либо контроль версий.

У кого-нибудь есть предложения по хорошей системе контроля версий с графическим интерфейсом для Mac, которая позволит мне выполнить то, что я изложил выше? (Основная проблема - шаг № 1 - создание локальной копии проекта, который еще не использует систему контроля версий, и возможность обновления локальной копии одним действием.)

Ответы [ 3 ]

1 голос
/ 03 августа 2011

С отображением, доступным через (Transmit) [http://www.panic.com/transmit/], вы можете довольно легко сделать то, что вы ищете.

Один из вариантов, который дает вам интерфейс GUI, - это просто каждый раз копировать файлы вручную, а затем использовать GitBox для создания нового коммита каждый раз, когда вы хотите сохранить набор изменений.Это сработает, но быстро станет утомительным.Утомительными вещами пренебрегают, поэтому не лучший вариант.

Лучшим решением было бы установить небольшой скрипт, который будет выполнять копирование и фиксацию за вас.В качестве примера проверьте следующее:

#!/bin/bash

### SETUP:

### Set the path to the remote mapped directory
SOURCE="/Volumes/your/mapped/folder/path"

### Set the path to your local folder (this must already exist)
REPOS="/Users/your-username/your-storage-folder"


### MAIN:

### Move into the respository directory
cd $REPOS

### Initialize the repository if it doesn't exist
if [ ! -d "${REPOS}/.git" ]; 
    then 
    git init
fi

### Now copy down the files
rsync -a --delete --exclude '.git' $SOURCE/ $REPOS/

### Add all the changes to git staging
git add .

TIMESTAMP=`date`

### Now commit the changes
git commit -am "Committed: $TIMESTAMP"

Если на вашем Mac установлен git, это должно работать, если вы:

  • Создайте новый текстовый файл с "".Команду "extension (например," archive-site.command ") и вставьте в нее этот код.
  • Измените пути «ИСТОЧНИК» и «РЕПОС» на значения с фактическими путями на вашем компьютере.
  • Используйте chmod u+x archive-site.command, чтобы сделать его исполняемым.

Оттуда все, что вам нужно сделать, это дважды щелкнуть этот файл в Finder, и он синхронизирует вашу локальную папку с содержимым каталога сервера, а затем сделает новый коммит врепозиторий.Это простой и немного неортодоксальный, но он даст вам некоторый уровень защиты контроля версий без особых хлопот.

1 голос
/ 26 июля 2011

ИМХО: достаточно двух человек, чтобы оправдать контроль исходного кода для группы. Если другие не хотят, то следующая лучшая вещь, чтобы прикрыть спину ...

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

Возможно, вы захотите посмотреть rcp, чтобы сохранить локальную копию в сравнении с версией разработки.

Может быть полезно сохранить ДВЕ локальные копии: одну, над которой вы работаете, и одну, которую вы используете для объединения изменений из рабочей копии. Просто перезапишите файлы в локальной копии для разработки. Затем отметьте их или объедините, если необходимо. Это позволит вам полностью сравнить изменения в dev с вашим репо, не убивая собственную рабочую копию.

0 голосов
/ 01 августа 2011

Если бы я был в вашей ситуации (и не смог настроить систему управления версиями на сервере), я бы изменил методологию, которую вы предлагаете, на что-то вроде этого:

Примечание: я понимаюВы спрашиваете о графическом интерфейсе, но я собираюсь добавить сюда команды, которые можно использовать и в терминале.Это на самом деле довольно легко сделать.Всего несколько минут практики и небольшая шпаргалка, и вам, вероятно, будет проще / быстрее сделать это таким образом.Я также предполагаю, что ваш веб-сервер для разработчиков относится к типу linux / unix и что вы можете настроить свой Mac на сервер веб-страниц аналогичным образом.Либо через встроенную функцию веб-обмена, либо с помощью чего-то вроде MAMP .

  1. Создайте пустой локальный рабочий каталог на моем Mac, который будет использоваться дляразработка работы.

  2. Инициализировать репозиторий git из приложения Terminal в локальном рабочем каталоге с помощью:

    git init
    
  3. Извлечь весь код из разработчикасервер в локальный рабочий каталог.Я бы сделал это с помощью команды rsync из терминала.Если у вас есть сервер dev, подключенный как диск на вашем Mac, команда будет выглядеть примерно так:

    rsync -a /Volumes/{DriveName}/{path}/{to}/{project-folder} /Users/{yourUserName}/projects/{project-folder}
    

    Если диск не подключен, вы, вероятно, все еще можете использовать rsync.Это просто займет другую настройку.Есть другие ресурсы, которые могут вам помочь, если они вам нужны.Конечно, вы также можете использовать все, что планировали перенести файлы в ваш рабочий процесс.

    В качестве более прямого ответа на ваш вопрос, я не знаю, может ли Git или другое программное обеспечение контроля версийвытащить файлы из удаленного места, которое не является другим хранилищем.Я думаю, вам придется сделать этот шаг с чем-то другим.

  4. Добавьте все файлы в git, чтобы он знал, чтобы отслеживать их, а затем зафиксируйте их в хранилище с помощью:

    git add .
    git commit -m "Put a commit message here"
    
  5. Сделайте всеизменения, необходимые для файлов на Mac, а не на сервере разработчика, используя встроенный Mac Web Sharing или что-то вроде MAMP для просмотра изменений.

  6. Добавьте все изменения и подтвердите снова с помощью тех же двух команд:

    git add . 
    git commit -m "A new message about what changed"
    
  7. Повторяйте шаги 5 и 6, пока не получите что-тохочу отправить обратно на сервер разработки для более глубокого тестирования.

  8. Отправьте ваш код на сервер разработки.Затем вернитесь к шагу 5 и продолжайте вносить изменения и фиксировать, пока не будете готовы снова вернуться к dev.

Преимущества этого подхода:

  • Будет гораздо проще иметь дело с контролем версий локально, чем пытаться копировать файлы в каждуювремя и затем версия.Чтобы сделать это таким образом, потребуются дополнительные шаги, что означает, что более вероятно, что произойдет ошибка, или вы не будете делать это так часто, как должны.

  • Это должно быть быстрее, чем работа на самом сервере dev.

  • Вы можете работать, даже если вы не подключены к серверу dev,(Если на вашем компьютере установлен какой-либо тип macbook, вы можете работать из любого места.)

  • Вероятность того, что сервер разработки будет в состоянии, когда ваш код не работает, значительно ниже.,

  • Никто не увидит ваш код, если он не находится в состоянии, в котором вы готовы его увидеть.

Этот рабочий процесс обеспечивает базовое управление версиями, которое позволяет вам просто вернуться к предыдущим версиям.Есть еще что-то, что вы можете сделать с ветками, тегами и т. Д., Но то, что я изложил, поможет вам начать с основ и охватит вас так часто, как вы делаете коммиты.Что касается графического интерфейса, вы упомянули GitBox.Я использовал это раньше и мне это нравилось, но я обнаружил, что мне намного проще и быстрее использовать команды в командной строке.

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