Как отнять от груди меня от FTP в пользу Управления версиями

AFAIK, нет простого способа сделать это, потому что интерфейс mexFunction скорее flat . Тем не менее, есть несколько различных обходных решений, о которых я могу думать, что должно помочь вам приблизиться. Выберите лучший вариант в зависимости от ваших потребностей.

  1. Самый простой способ - создать глобальный экземпляр класса dlp в вашей mex-функции. Сделать первый параметр функции mex вызовом строки, которая указывает, какая функция-член глобального объекта должна быть вызвана. Очевидным недостатком является то, что вы превратили вашу mex-функцию в одноэлементный.
  2. Если вам нужно больше одного экземпляра dlp, вы можете создать некоторый глобальный контейнер в функции mex, например std::map<std::string, dlp> , а затем ссылаться на каждый экземпляр dlp с помощью какого-либо имени из MATLAB. Например, для создания нового экземпляра вы вызываете функцию mex с именем, которое еще не существует в map. Затем вы можете вызвать функцию mex с этим именем, строку, указывающую, какую функцию-член вызывать, и любые параметры, которые должны быть переданы в функцию-член. Также настройте какое-то соглашение, по которому вы можете стереть экземпляр dlp из map.
  3. Как и во втором решении, вместо того, чтобы называть экземпляры dlp, вы можете вернуть дескрипторы для каждого экземпляра. Например, создайте глобальный std::set<dlp *>, и если у вас есть функция mex, создайте новый экземпляр dlp, добавьте его в set и верните копию указателя на выделенный объект в MATLAB (вставьте его в скаляр переменная типа mxUINT64_CLASS). Последующие вызовы для вызова функций-членов на этом объекте передают эту переменную handle в функцию mex из MATLAB, вы будете соответствующим образом ее применять в файле mex, найдите ее в set и вызовите функции-члены .

Ни один из этих методов не является особенно красивым, но это единственные способы, с помощью которых я могу вызвать функции-члены класса C ++ из файла mex.

16
задан Blair Conrad 3 December 2008 в 18:31
поделиться

10 ответов

Сначала Вы захотите решить то, что Вы хотите использовать для управления версиями. Я слышу большие вещи о Мерзавце, но все еще пользователь SVN сам.

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

я предложил бы читать или скользить через в лучшем случае: http://www.svnbook.org это очень всесторонне, если Вы планируете на самом деле использовать SVN по Мерзавцу.

2
ответ дан 30 November 2019 в 21:29
поделиться

Для загрузок файла, что Вы ищете, rsync. Существует обертка Windows для этого названного , DeltaCopy и DreamHost wiki имеют инструкции .

6
ответ дан 30 November 2019 в 21:29
поделиться

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

Это - более новая и прекрасная идея, рассмотрите что-то как Magento, который имеет 6 744 файла в основной установке, не упоминая, когда Вы начинаете добавлять свою кожу, которая usally работает приблизительно в 500 файлов. Используя управление версиями для РАЗВЕРТЫВАНИЯ что-то вроде этого экономит главное время, загружая это много крошечных файлов через FTP как, только измененные отправляются.

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

2
ответ дан 30 November 2019 в 21:29
поделиться

Вам перепутали вещи немного. Система управления версиями используется внутренне для отслеживания код во время разработки. С централизованными системами как SVN Вы регулярно загружаете свой код на сервер SVN, который отслеживает то, что изменилось, удостоверяется, что конфликтующие изменения объединяются правильно, и сохраняет историю, таким образом, можно откатывать изменения.

Децентрализованные или распределенные системы управления версиями устраняют один центральный сервер, вместо этого позволяя каждой копии кода отследить его собственную историю изменений, и затем позволяя Вам объединить и объединить эти отдельные ответвления по желанию.

, Но после того как у Вас есть готовый продукт, Вы выставляете его к рабочему серверу любым путем, Вам нравится. FTP является, конечно, одной опцией для того, чтобы сделать это.

12
ответ дан 30 November 2019 в 21:29
поделиться

Статьи Eric Sink об управлении исходным кодом являются великолепным местом для приобретения знаний о фундаментальных понятиях.

http://www.ericsink.com/scm/source_control.html

1
ответ дан 30 November 2019 в 21:29
поделиться

Нет никакой проблемы с помощью ftp для загрузки. Единственный недостаток - то, что пароль передается как простой текст.

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

я не думаю, что существует потребность установить систему управления версиями на Вашем общем хосте. Только если Вы хотите получить доступ к системе управления версиями от различных сайтов (дома, на работе, при перемещении), это может быть удобно.

0
ответ дан 30 November 2019 в 21:29
поделиться

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

На моей локальной машине мне установили Подверсию и TortoiseSVN.

  1. , Если я запускаю новый проект, я настраиваю репозиторий SVN способ, которым мне нравится он (я использую магистральное/ответвление/тег систему).

  2. я контроль первоначальная рабочая копия от соединительной линии до папки проекта в моем локальном webroot.

  3. я создаю новый проект в Aptana и устанавливаю путь проекта к моей папке проекта на localhost.

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

  5. , После того как у меня есть стабильная, развертываемая версия моего приложения, я создаю тег управления версиями . Затем я делаю экспорт того (неуправление версиями это).

  6. экспортированное приложение затем загружено через FTP.

Это - то, как я делаю это в данный момент так или иначе, возможно, это разъясняет somethings. Подсказки относительно улучшения процедуры приветствуются!

1
ответ дан 30 November 2019 в 21:29
поделиться

Вот Wiki, которая должна дать Вам всю информацию, в которой Вы нуждаетесь на добавляющей Подверсии к Dreamhost.

http://wiki.dreamhost.com/index.php/Subversion

я использовал Подверсию теперь для моих сайтов, и она действительно делает это намного легче. Я использую Aptana на своей машине Windows и загружаю все через ту программу. Это позволяет мне сравнивать старые версии, возвращаться им, отклоняться новые версии, и т.д.

Это - огромное средство экономии времени!

1
ответ дан 30 November 2019 в 21:29
поделиться

As others have said, you can set up version control locally ... or on your host. I recommend you do whatever works best for you.

You mention using Dreamhost. I support one small site there, and know that they do allow uploading via scp and sftp. This would allow you to upload your files with your password encrypted. (And you don't have to adopt a version control method if you don't want to! ;-) Scroll down the sftp page I linked to and you'll find some suggestions for scp & sftp clients.

FWIW, if you're using Windows, I've used WinSCP for years and liked it. Also, if you want full login access, I suggest PuTTY; its full download also includes command line based clients for sftp and scp.

1
ответ дан 30 November 2019 в 21:29
поделиться

Есть замечательный плагин для bzr под названием bzr-upload , разработанный именно для вашего варианта использования. bzr очень легкий (нет необходимости создавать репозиторий) и очень прост в использовании, даже если вы раньше не использовали какой-либо источник управления. Это плагин для bzr, и каждый раз, когда вы делаете коммит на своем локальном компьютере, он отправляет измененные файлы на ваш веб-хост. Он не выводит всю информацию для контроля версий, только сами файлы.

0
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: