Окончательно решено, включая 5-секундный сон после чистого использования и до GetFiles () :
System.Threading.Thread.Sleep(5000)
Спасибо за ваше время и надежду это помогает любому с подобной проблемой.
В мерзавце можно передать вывод по каналу git-diff
между двумя фиксациями как это:
git diff fa1afe1 deadbeef > patch.diff
Отправьте patch.diff
разработчику и позволяют ему git-apply
это к его рабочей области как это:
git apply patch.diff
Если другой разработчик уже имеет фиксации в наличии в своем репозитории, он мог бы всегда передавать его по каналу в себе, не объединяясь как это:
git apply < git diff fa1afe1 deadbeef
Можно затем добавить и фиксировать изменения в разности обычный путь.
Теперь здесь прибывает интересная часть, когда необходимо объединить патч назад к основному ответвлению (который общедоступен). Рассмотрите следующее дерево пересмотра где C*
применяемый патч от C
в основном ответвлении:
A---B---C---D master, public/master
\
E---C*---F feature_foo
Можно использовать git-rebase
обновить ответвление темы (в этом названном примере feature_foo
) с он - восходящая голова. То, что это означает, - когда Вы вводите в следующем:
git rebase master feature_foo
Мерзавец перестроит дерево пересмотра как это и также применит сам патч:
A---B---C---D master, public/master
\
E*---F* feature_foo
Слияние с восходящим ответвлением теперь будет легким слиянием ускоренной перемотки вперед. Также проверьте что новые фиксации E*
и F*
работайте предыдущим E
и F
соответственно.
Можно сделать то же самое против ответвления другого разработчика с помощью тех же шагов, но вместо того, чтобы делать его на общественности repo, Вы будете выбирать изменения из репозитория разработчика. Таким образом, Вы не должны будете просить у другого разработчика патч, если это уже доступно от того, что он опубликовал в своем repo.
Отметьте, чтобы никогда повторно основывать общедоступное ответвление, потому что команда перепишет историю мерзавца, которая является чем-то, что Вы не хотите делать на ответвлениях, что люди зависят от и создадут путаницу при слиянии с удаленными репозиториями. Также никогда не забывайте интегрироваться часто, таким образом, другие в Вашей команде могут принять участие Ваших изменений.
Дескрипторы Bzr, отправляющие "директиву слияния", означая это, отправляют патч за Вами так, чтобы другая сторона могла просто нажать "OK" для слияния и существует меньше futzing вокруг с, исправляют/применяют и т.д.
просто: $ bzr отправляют-o mycode.patch
В SVN можно просто внести изменения затем перед фиксированием, передать вывод по каналу svn разности в файл как таковой
svn diff > mypatch.diff
можно затем вернуться изменения и применить патч позднее с помощью
patch -p0 -i mypatch.diff
Как всегда вслепую не применяют патчи к Вашему коду и всегда осматривают их сначала.
Можно также найти, что патч повредит исходный код, если исходные файлы изменились достаточно значительно, так как патч был взят.
Вы также не можете гарантировать, что не будет конфликтов слияния, когда Вы попытаетесь зарегистрироваться в коде.
В Подверсии нет никакого хорошего способа сделать это. Да, можно использовать svn разность + патч, но это только отложит проблемы, пока Вы не соберетесь объединиться, и к тому времени возможности состоят в том, что Вы забыли об этом.
Путем Вы сделали бы это в Подверсии, должен будет создать ответвление, сделать фиксацию на ответвлении и попросить, чтобы получатель патча переключился на ответвление. Затем можно объединить ответвление назад для транкинга обычным способом.