Оформить заказ подкаталоги в Git?

Вышеприведенный код делает именно то, что он выглядит: пишет элемент «MyParts», а затем записывает дочерний элемент «parts», а затем дочерний элемент «item» со значением, которое находится в вашем текстовом поле.

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

Вы (можете) захотеть:

  1. Создайте соответствующие классы для частей, у которых есть члены, которые вы хотите
  2. Создайте коллекцию этих элементов
  3. Обновите сборку в памяти из вашего пользовательского интерфейса
  4. g2]
  5. Сохраните коллекцию с использованием форматирования и функциональности XML по вашему выбору (включая, помимо прочего, то, что вы делаете выше, или LINQ to XML или XML Serialization или ...)
148
задан Community 23 May 2017 в 12:17
поделиться

5 ответов

Sparse checkouts - теперь в Git 1.7.

Также см. вопрос "Можно ли сделать разреженную проверку без предварительной проверки всего репозитория?".

Обратите внимание, что при разреженной проверке всё равно требуется загрузить весь репозиторий, даже если некоторые файлы, загруженные Git'ом, не попадут в ваше рабочее дерево.

118
ответ дан 23 November 2019 в 22:02
поделиться

На самом деле "узкий" или "частичный" или "редкий" контроль находится в процессе текущего, тяжелого развития для Мерзавца. Отметьте, у Вас все еще будет весь репозиторий под .git. Так, другие два сообщения являются текущими для текущего состояния Мерзавца, но оно взгляды как мы будем в состоянии сделать редкий контроль в конечном счете. Контроль списки рассылки , если Вам интересно более подробно - они изменяются быстро.

10
ответ дан Cebjyre 23 May 2017 в 12:17
поделиться

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

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

парадигма подверсии для подпроектов svn:externals, который переводит несколько в подмодули в мерзавце (но не точно в случае, если Вы использовали svn:externals прежде.)

1
ответ дан Cebjyre 23 May 2017 в 12:17
поделиться

Нет никакого реального способа сделать это в мерзавце. И если Вы won’t внести изменения, которые влияют на оба дерева сразу как на единицу работы, нет никакого серьезного основания использовать единый репозиторий для обоих. Я думал, что пропущу эту функцию Subversion, но я нашел, что создание репозиториев имеет такие маленькие административные умственные издержки (просто вследствие того, что репозитории хранятся прямо рядом с их рабочей копией, вместо того, чтобы требовать, чтобы я явно выбрал некоторое место за пределами рабочей копии), что я привык только к созданию большого количества небольших специализированных репозиториев.

, Если Вы настаиваете (или действительно нуждаются в нем), тем не менее, Вы могли бы сделать репозиторий мерзавца со всего mytheme и myplugins каталоги и символьная ссылка каталоги из установки WordPress.

<час>

MDCore записал:

создание фиксации к, например, mytheme увеличит число пересмотра для Примечание myplugin

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

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

Мерзавец действительно действительно хочет, чтобы Вы использовали отдельные репозитории для отдельных объектов.

подмодули

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

17
ответ дан Cebjyre 23 May 2017 в 12:17
поделиться

Ваш подход к определению размера файла путем поиска до конца файла, а затем с помощью ftell () неверен:

  • Если это текстовый файл, открытый без «b» во втором параметре вызова fopen () , то ftell () может не указывать количество символов, которые вы можете Например, окна используют два байта для конца строки, но при чтении это один символ . Фактически, возвращаемое значение ftell () для потоков, открытых в текстовом режиме, полезно только для вызовов fseek () , а не для определения размера файла.
  • Если это двоичный файл, открытый «b» во втором параметре до fopen () , то стандарт C имеет следующее значение:

    Установка индикатора положения файла на конец файла, как и для fseek (file, 0, SEEK_END) , имеет неопределенное поведение для двоичного потока (из-за возможных завершающих нулевых символов) или для любого потока с кодировкой, зависящей от состояния, которая, безусловно, не заканчивается в начальном состоянии сдвига.

Итак, то, что вы делаете, не обязательно будет работать в стандарте C. Ваша лучшая ставка - использовать fread () для чтения, и если вам понадобится больше памяти, используйте realloc () . Ваша система может предоставить mmap () или может гарантировать установку индикатора положения файла на конец файла для двоичных потоков, но полагаться на них не переносится.

См. также C-FAQ: В чем разница между текстом и двоичным вводом-выводом? .

-121--3205263-

UPDATE

Как указано в другом ответе, приведенное ниже решение является «избыточным», поскольку удаляет MacPorts из вашей системы, что, как я думал, уже было сделано ранее. Продолжайте осторожно. Возможно, путь использовать MacPorts для обновления установки libxml2.


Я решил эту проблему (по крайней мере, на моей машине).

Как только я понял, что ничто в этом следе не говорит об отсутствии libxml2, а скорее о проблеме с обнаруживаемой версией, я посмотрел вокруг на подтверждение этого факта. Конечно, сайт nokogiri (где многие похожие сообщения о жучках указывали на меня) утверждает в неопределенных терминах, что Снежный Барс осуществляет корабли с хорошей рабочей версией libxml2.

Таким образом, я рассуждал, что я должен был установить версию другим способом давно. Я бы помнил, если бы я установил вручную, так что остался только один вариант, чертовы макпорты.

$ libxml2-2.7.1 tfwright$ sudo find / -type d -name "libxml2" 
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/libxml2
/Developer/SDKs/MacOSX10.5.sdk/usr/include/libxml2
/Developer/SDKs/MacOSX10.6.sdk/usr/include/libxml2
/opt/local/include/libxml2
/opt/local/share/gtk-doc/html/libxml2
/opt/local/var/macports/distfiles/libxml2
/opt/local/var/macports/receipts/libxml2
/opt/local/var/macports/software/libxml2
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/include/libxml2
/opt/local/var/macports/software/libxml2/2.6.30_0/opt/local/share/gtk-doc/html/libxml2
/opt/local/var/macports/sources/rsync.macports.org/release/ports/textproc/libxml2
/usr/include/libxml2
/usr/share/gtk-doc/html/libxml2

Сын... просто сдув /opt/local/var/macports , который я пытался прежде всего, похоже, не исправить проблему, поэтому я пошел к большим пушкам .

sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

После чего все устанавливается нормально. верно. Никогда не доверяйте рекомендациям сообщений об ошибках! Мне не нужно было переустановлять libxml2 с макпортами, а нужно было удалить все следы макпортов из моей системы , которая преследовала меня из-за мусора.

-121--3747479-

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

Если вы хотите рассматривать пару каталогов как одну единицу, вы можете использовать «wordpress/wp-content» в качестве корня репо и использовать файл .gitignore на верхнем уровне, чтобы игнорировать все, кроме двух интересующих подкаталогов. Это, вероятно, наиболее разумное решение на данном этапе.

Разреженные проверки, как утверждается, идут уже два года, но до сих пор нет никаких признаков их в репо гит-девелопмента, ни каких-либо признаков того, что необходимые изменения когда-либо туда поступят. Я бы не стал на них рассчитывать.

1
ответ дан 23 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

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