Как внештатный разработчик, мне нравится удерживать всю мою разработку мой собственный сервер SVN и для непрерывной интеграции, а также бухгалтерии относительно того, какие изменения были внесены и когда.
Я теперь работаю с клиентом, который также использует SVN внутренне и очевидно хотел бы, чтобы я работал с их группой разработчиков на их сервере SVN.
Здорово в целом, но это также заставило бы меня отказываться от своих трудовых навыков на этом проекте и терять мой внутренний бухгалтерский метод. Если это произойдет много, то я закончу с довольно свободными рабочими стандартами - в конечном счете варьирование проектом (который я, очевидно, не хочу).
Там некоторый творческий путь состоит в том, чтобы получить лучший из обоих миров и иметь код, существуют на фиксации в обоих серверы SVN? Я не возражаю против небольшой дополнительной работы или впереди или на каждой фиксации/обновлении для осуществления его.
svnsync похож, возможно, на хороший вариант. Кто-либо попробовал это? У кого-либо есть другие предложения?
Вы можете периодически (еженедельно?) Svndump ваших клиентов репозиторий и импортируйте это на свой собственный сервер, чтобы вы могли выполнить свой анализ для целей биллинга или других.
Единственная проблема, которую я могу подумать, то, как счастливы ваш клиент может быть для вас, чтобы сделать это.
Во-первых, я бы настроил вашу оболочку/среду, чтобы дать вам основной дамп. В bash:
ulimit -c unlimited
После получения дампа ядра можно использовать gdb для проверки трассировки стека:
gdb /path/to/app /path/to/core/file
-121--3560117- В качестве ссылки я всегда использую/ссылаюсь на Форматирование последовательности и, по-видимому, нет «th» ни в одной из доступных переменных, но вы можете легко построить последовательность с
string.Format("{0:dddd dd}{1} {0:MMMM yyyy}", DateTime.Now, (?));
Тогда вы должны будете указать «st» для 1, «nd» для 2, «rd» для 3 и «th» для всех остальных и могут быть встроены в оператор «?:».
var now = DateTime.Now;
(now.Day % 10 == 1 && now.Day != 11) ? "st"
: (now.Day % 10 == 2 && now.Day != 12) ? "nd"
: (now.Day % 10 == 3 && now.Day != 13) ? "rd"
: "th"
-121--874866- Здесь можно увидеть два различных подхода: либо вы продолжаете работу в репозитории, а затем вручную выполняете операции сброса в репозитарий, когда чувствуете, что ваш код находится на уровне. Другой подход заключается в том, чтобы посмотреть на svn крючки фиксации - то есть сценарии, которые выполняются каждый раз, когда фиксация сделана. Из такого сценария я предполагаю, что вы можете легко сделать то же самое в другом репозитории.
Я предполагаю, что ваш контракт позволяет вам сохранить код для себя, в противном случае вы в значительной степени должны делать все, что ваш клиент говорит вам с кодом.
Проблема с заданием ключей заключается в том, что она означает, что вам придется придеться каждый раз при запуске (если вы храните ключ, у вас такая же проблема). Это может быть хорошо компромисс, если то, что вы защитите, особенно чувствительны.
В целом, Chrome принимает философию доверия к ОС для защиты профиля пользователя, где хранятся эти данные, поэтому, если вы используете локальное хранилище для хранения паролей, это не отличается от того, что Chrome делает сегодня с паролем Autofill, история браузера и т. Д.
-121--3894661-Конечно, система управления версией помогает в обмене и управлению кодом. Если вы используете два репозитория, все будет очень грязно, очень быстро. Я бы пошел с потоком и использую все, что компания тоже просит вас
Использование репозитория клиента
Один раствор будет просто использовать репозиторий вашего клиента напрямую. Любые другие «вещи», которые там не принадлежат, это имеет отношение только к вашей книге, такому как ваше управление проектами, хронометраж, и т. Д., Может пойти в ваш локальный репозиторий. Вы бы сохранили два отдельных, с двумя отдельными рабочими копиями, хотя вы можете настроить SVN: внешний
в местном репозитории, указываю на репозиторий клиента, если вы хотите немного сложно.
Это должно работать так долго, как и вы, и клиент довольны тем, насколько прекрасны ваши коммиты. Вы также можете подумать о работе в филиале в репозитории вашего клиента и объединяться в багажник, когда вы довольны своей работой. Он также имеет преимущество (для вашего клиента), что у клиента есть резервная копия всех ваших рабочих прогресса, которые они могут понравиться.
Гит с интеграцией Subversion
Другое решение может быть использовано в Git локально и использовать его способность работать с Subversion . Вы могли бы сохранить ваш прогресс в легкой местной ветке.
Я не уверен, что такое проблема. Вы используете другой URL-адрес SVN, но все остальное одинаково. Что вы подразумеваете под «хранением книги»?
Возможно, это сводится к кому владеет кодом - если это их, они имеют все право попросить вас использовать их систему управления версиями. И, поскольку это звучит так, как будто вы работаете с командой разработки, они вы мешали.
Поскольку есть другие задействованные разработчики, вы, очевидно, должны работать от своего репозитория, чтобы убедиться, что у вас всегда есть последний код и, таким образом, избегайте конфликтов и т. Д.
, если вы обеспокоены сохранением копии кода (предполагая, что Юридический), есть много способов достижения того, что, например, периодически экспортировать рабочую папку, указывающую на их сервер в другую рабочую папку на вашем компьютере, указывая на свой сервер, и совершать.
Вы можете отсортировать кортежи O (n log n), затем создать словарь O (n)
или более простой O (n), но в случае множества кортежей Вы можете наложить на память большую нагрузку:
your_dict = {}
for (a,b) in your_list:
if b in your_dict:
your_dict[b].append(a)
else:
your_dict[b]=[a]
мм это почти то же самое, что Вы описали. Что неловко в этом?
Вы также могли бы рассмотреть возможность использования базы данных SQL для выполнения грязной работы.
-121--1207016-Класс должен быть совместимым. Это может быть не так, если у вас есть ComVisible (false) для всей сборки.
.Net классы будут совместимы с IDispatch по умолчанию, поэтому ваш образец должен работать просто хорошо, если класс действительно совместим..
Но сначала снимите его до минимума. Поместите exe в ту же папку, что и сборка .Net, и пропустите файл конфигурации и базу приложений.
Перед тем, как что-то перепутать, здесь происходит исключение, верно?
ov := obj.Unwrap;
-121--2271309- Если вам интересно перечислить только изменения, внесенные в Subversion (я полагаю, количество фиксаций в неделю, список исправленных проблем...), вы можете написать простой прикладной Java, который запросит любой репозиторий Subversion для ваших изменений После этого возникает вопрос о том, чтобы направить ваше приложение в нужный репозиторий.
Существует несколько простых в использовании библиотек Subversion, и у меня не было особых проблем с SvnKit .