Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Лучшие подходы к версионированию файлов Mac "bundle"
Таким образом, вы знаете, что многие приложения Mac используют "bundles": он выглядит как один файл для вашего приложения, но на самом деле это папка с большим количеством файлов внутри.
Чтобы система управления версиями могла справиться с этим, ей необходимо:
- проверьте все файлы в каталоге, чтобы приложение могло изменять их по мере необходимости
- при заселении,
- фиксация файлов, которые были изменены
- добавление новых файлов, созданных приложением
- отметьте как удаленные файлы, которых больше нет (так как приложение удалило их)
- управлять это как одно атомарное изменение
Есть идеи, как лучше всего справиться с этим с помощью существующих систем контроля версий? Есть ли какие-либо системы управления версиями более искусные в этой области?
Mercurial в частности, версии, основанные на файле, а не на структуре каталогов. Поэтому ваше рабочее дерево, которое является полноценным репозиторием, не выплевывает папки .svn на каждом уровне.
Это также означает, что каталог, который заменяется, как приложение или другой Bundle, все равно будет находить свое содержимое с определенными именами файлов под контролем версий. Имена файлов отслеживаются, а не индексные коды или что-нибудь подобное!
Очевидно, что если новый файл будет добавлен в Bundle, вам нужно будет явно добавить его в свой репозиторий. Аналогично, удаление файла из Bundle должно быть выполнено с помощью 'hg rm'.
Для OS X пока нет приличных Mercurial GUIs, но если все, что вы делаете, - это add/commit/merge, то использовать командную строку не так уж и сложно.
Для распределенных систем SCM, таких как git и mercurial, не должно быть проблем, как упоминал Мэтью.
Если вам нужно использовать централизованный SCM, как Subversion или CVS, то вы можете zip up (архивировать) ваши пакеты перед их проверкой в системе управления версиями. Это может быть болезненно и требует дополнительного шага. Есть хороший пост в блоге об этом в Tapestry Central:
Мак ОС х пачек и подрывной деятельности
В этой статье демонстрируется сценарий ruby, который управляет архивацией для вас.
Возвращая эту нить к дневному свету, начиная с октября 2013 года iWork (страницы 5.0 и т. д.) больше не позволяет хранить в 'flat file' (zipped), но только в виде пакетов.
Проблема заключается не в создании скрытых папок управления версиями внутри таких структур (ну, для svn это так), а в том, как говорит Марк в вопросе: получение автоматического, атомарного обновления файлов, добавляемых или удаляемых (приложением, в данном случае iWork), поэтому мне не нужно было бы делать это вручную.
Очевидно, что iWork и Apple беспокоит только удобство использования iCloud. Однако у меня есть подлинный кейс для хранения .pages, .numbers и .keynote в Mercurial РЕПО. После обновления он взрывает все на части. Что же делать?
Дополнение:
Нашел "hg addremove", что делает трюк для меня.
$ hg help addremove
hg addremove [OPTION]... [FILE]...
add all new files, delete all missing files