Преобразование группы разработчиков от FTP до Системы управления версиями

Попробуйте сделать что-то вроде этого,

from signal import pause
from gpiozero import Button

class pressException( Exception ):
    pass

def raisePressException():
    raise pressException( 'Button held' )

try:
    push = Button( 5 )
    push.when_held = raisePressException()
    pause()
except pressException:
    print( 'Exception accepted' )

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

6
задан Ólafur Waage 28 December 2008 в 23:45
поделиться

8 ответов

Вопросы:

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

  2. Они используют веб-сервер подготовки для тестирования изменений?

  3. Конечно, они не изменяют код в рабочем сервере без некоторого тестирования где-нибудь?

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

Я рекомендовал бы использовать систему управления версиями или VCS (любой VCS) самостоятельно. Разработайте морщины для кода, о котором Вы заботитесь и разрабатываете гладкое распределение, которое помогает (вероятно, все еще использование SFTP) распределить код VCS веб-сайту. Но также и покажите, что сохранение предыдущих версий имеет свои достоинства - потому что можно восстановиться, кто сделал что когда. Прежде всего, Вы могли бы найти, что необходимо загрузить текущую версию любой страницы (файл), необходимо продолжить работать и поместить ту последнюю версию в VCS, прежде чем Вы начнете изменять страницу, потому что кто-то еще, возможно, изменил его, так как это обновилось в Вашем главном репозитории. Вы могли бы также хотеть сделать ежедневное 'царапанье' файлов для получения текущих версий - и изменения дорожки. Вы не имели бы, 'кто', ни точно 'когда' (лучше, чем к ближайшему дню), ни, 'почему', но Вы будете иметь (кумулятивный) 'что' из изменений.


В ответе на комментарии в вопросе Ólafur Waage разъяснил, что у них были аварии из-за отсутствия VCS.

Это обычно делает жизнь намного легче. Они попали впросак; они не могли отменить глупость - они, вероятно, раздражали клиентов, и они должны были невероятно раздражаться из-за себя. VCS делает намного легче восстановиться с таких ошибок. Очевидно, для любого данного настроенного сайта, Вам нужно (центральное) резервное копирование 'корректной' или 'официальной' версии того сайта, доступного в VCS. Я, вероятно, пошел бы для единого репозитория для всех клиентов, с помощью VCS, который имеет хорошую поддержку того, чтобы перейти и объединиться. Это может быть более твердо иметь дело со сначала (в то время как люди привыкают к использованию VCS), но вероятно приводит к лучшим результатам в долгосрочной перспективе. Я серьезно рассмотрел бы использование на современного распределенного VCS (например, мерзавец), хотя много людей использует SVN также (даже при том, что это не распределенный VCS).

7
ответ дан 8 December 2019 в 17:28
поделиться

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

возможно, попытайтесь установить и использовать это для себя и показать им через некоторое время, что это может сделать для Вас. другая прохладная вещь могла бы устанавливать trac (http://trac.edgewall.org/) на Вашем сервере, если у Вас есть доступ и полномочия сделать так, или возможно в некоторой виртуальной машине на Вашей собственной машине разработки. можно отобразить trac на svn и получить изменения svn в веб-интерфейсе, который можно показать менеджеру проектов. возможно, он попадется на это, он сможет видеть, что код изменяется легко через веб-интерфейс. конечно, можно сделать это только с апачем + svn модуль, но это более хорошо, поскольку он предлагает путь к покупке билетов и roadmapping (этапы и материал, который могли бы вырыть менеджеры: o))..

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

2
ответ дан 8 December 2019 в 17:28
поделиться

Можно установить SVN в локальной системе для демонстрации. Существуют некоторые инструменты для интеграции Пехлеви и Eclipse к SVN. Я думаю в дополнение к выполнению демонстрации SVN, необходимо, вероятно, дать им презентацию некоторых преимуществ, которые это даст (вероятно, во время демонстрации).

Перейдите к этой ссылке для некоторых идей: мне Действительно нужно Управление версиями?

2
ответ дан 8 December 2019 в 17:28
поделиться

Вот один прием, который все будут любить:

Я включаю этот 'плагин' в большинство своих мест производства: Конечно, необходимо создать робот ограниченных прав svn счет на это сначала, и svn должен быть установлен на сервере.

    echo(' updating from svn<br>' );
    $username = Settings::Load()->Get('svn','username');
    $password = Settings::Load()->Get('svn','password');
    echo(" <pre>" );
    $repos = Settings::Load()->Get('svn' , 'repository');
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force");
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force");

    die();

Удостоверьтесь, что Вы помещаете это позади .htpasswded сайта, конечно, и удостоверяетесь, что не обновляете 'производственные настройки' от SVN. И вуаля, Вы обновляете свою полную кодовую базу с одним Запросом HTTP Вашему сайту :) SVN перезаписывает файлы автоматически, нет никаких скрытых файлов или оставленных позади папок и его легко адаптированы, чтобы обновить или вернуться к определенной версии. Теперь вся Ваша команда должна сделать, соглашаются на их репозиторий SVN, выполняют эту часть кода тестовой среды, удостоверьтесь, что все работает и затем выполняет его на производстве :)

2
ответ дан 8 December 2019 в 17:28
поделиться

Просто помещенный т.е. SVN в середине.

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

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

/Johan

0
ответ дан 8 December 2019 в 17:28
поделиться

Ólafur, Вы упомянули, что "студия делает систему CMS, которая размещается на сотнях сайтов". Это само может быть морковью, в которой Вы нуждаетесь. Если команда часто развертывает обновления этих сотен сайтов, то использование ответвлений в системе управления версиями может сделать этот процесс намного легче для всех. Это могло сэкономить время и таким образом предоставит стимул людям изучить систему управления версиями.

Это кажется, что эти сайты все связаны - настроенные версии того же CMS. В этом случае необходимо поместить все сайты в том же репозитории, в дополнение к неспециализированному продукту CMS. Затем можно настроить их всех как ответвления того же центрального продукта. При использовании отдельных репозиториев нет простых способов создать ответвления для связи настроек с основным продуктом. (Я думаю, что можно сделать это с Подверсией и наиболее вероятными другими, но это усложнило и ненужный, если все разработчики работают на ту же организацию.)

1
ответ дан 8 December 2019 в 17:28
поделиться

VisualSVNServer и TurtoiseSVN являются этими двумя программами, которые я использую, они и хорошо документируются, и он интегрируется так хорошо с Windows Explorer и Visual Studio.

0
ответ дан 8 December 2019 в 17:28
поделиться

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

0
ответ дан 8 December 2019 в 17:28
поделиться
Другие вопросы по тегам:

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