Импорт с использованием GIT-TF - элемент уже имеет ожидающие изменения
У меня есть два экземпляра TFS, один 2012 и другой 2013. Моя цель - экспортировать некоторый исходный код из экземпляра 2012 и импортировать его в экземпляр 2013, сохранив проверку истории.
Я использую метод;
- Установите GIT для Windows с http://msysgit.github.io/
- Установите git-tf с http://gittf.codeplex.com/
- Создайте локальную папку для моего репозитория git c:\git
- Откройте приглашение GIT Bash в этой папке (чтобы оно было текущим)
$ git tf clone http://old-tfs-host:8080/DefaultCollection $/myProject/myBranch --deep
- Удалить папку tf и файл git-tf
- Скопируйте в мой файл USERMAP
$ git tf configure --deep --keep-author --force http://new-tfs-host:8080/DefaultCollection $/myProject/myBranch
$ git tf pull
$ git commit -a -m "Initial import from TFS 2012"
$ git tf checkin --deep
Я получаю ошибку после обработки около 57%
git-tf: не удалось дождаться изменений в TFS из-за следующих ошибок. Исправьте ошибки и повторите попытку. Элемент $/path-to-file уже содержит ожидающие изменения.
Вопрос - как мне разрешить ожидающие изменения файла? Пока я делаю эту регистрацию, в хранилище больше никого нет, поэтому может показаться, что экспорт может быть поврежден?
Я использовал этот же метод для двух других веток и был успешным.
РЕДАКТИРОВАТЬ Я обнаружил, что проблема в том, что файл был переименован с единственным отличием. Так в той же смене у меня
delete $/source-file
edit $/project-file
add $/Source-File
Очевидно, я переименовываю их, но файл, удаленный в строке 1, совпадает с файлом в строке 3, с той лишь разницей, что это имя файла.
Итак, я попробовал $ git config --global core.ignorecase false
но это не решает проблему как удаления, так и добавления одного и того же файла в одно и то же изменение.
2 ответа
У меня была такая же проблема, которая возникает, когда вы удаляете, добавляете и редактируете один и тот же файл в одной ревизии.
если вы делаете git tf checkin --preview
вы увидите детали.
Я решил это, выполнив:
git tf checkin --deep --renamemode=none
У нас была похожая проблема с Git-TF при запуске git tf checkin
возиться с renamemode
не работал:
не удалось дождаться изменений в TFS из-за следующих ошибок. Пожалуйста, исправьте ошибки и повторите попытку
Постановление об обходе pendChanges()
регистрироваться PendDifferenceTask.java
по существу--force
это внутри.
PendDifferenceTask.java - pendChanges ()
if (count < deleteSpecs.length)
{
log.debug("Failed to pend Delete changes...ignoring count mismatch. Expected: " + deleteSpecs.length + ", Actual: " + count);
//throw new Exception(Messages.getString("PendDifferencesTask.PendFailed")); //$NON-NLS-1$
}
Это изменение потребует восстановления через maven(mvn package -DskipTests
) для быстрого создания снимка JAR.
Кстати, если вы хотите включить отладку в Git-TF, обновите git-tf.cmd
в последующем это очень помогло:
git-tf.cmd - включить ведение журнала
java -ea -Xmx512M -Dlog4j.configuration=file:///C:\git-tf\log4j.xml -cp %GITTF_CLASSPATH% "-Dcom.microsoft.tfs.jni.native.base-directory=%BASE_DIRECTORY%native" com.microsoft.gittf.client.clc.Main %*
Тогда просто создайтеlog4j.xml
это выглядит так:
log4j.xml - Настройка регистрации
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{1}:%L - %m%n"/>
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="mycorp.myapp.log"/>
<param name="MaxFileSize" value="100000KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="4"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
</layout>
</appender>
<root>
<level value="debug"/>
<!--<appender-ref ref="stdout"/>-->
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
Если вы хотите графически просматривать наборы изменений TF в Windows - я предлагаю установить Atlassian sourcetree - это значительно облегчило поиск и устранение неисправностей, чем git log
,