Ho un repository in due cartelle diverse (folder1
e folder2
). All'interno repository ha un fileJGit ottiene file estratti
Nel folder1
faccio le seguenti fasi "oldFile"
:
echo 123 > oldFile
touch newFile
git add newFile oldFile
git commit -m "Change the oldFile from folder1 and add the newFile" oldFile newFile
git push origin master
Dopo di che, nel folder2
faccio prossimi passi:
echo zxc > oldFile;
git add oldFile;
git commit oldFile -m "Change oldFile from folder2"
In questo caso voglio ottenere un conflitto di unione
E voglio vedere i file estratti. Ho preso l'esempio da here.
ObjectId oldHead = repository.resolve("HEAD^{tree}"); //save old objectId
PullResult pullResult = pullCommand.setProgressMonitor(new TextProgressMonitor(new OutputStreamWriter(System.out))).call();
ObjectId head = repository.resolve("HEAD^{tree}");
ObjectReader reader = repository.newObjectReader();
CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
oldTreeIter.reset(reader, oldHead);
CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
newTreeIter.reset(reader, head);
List<DiffEntry> diffs= git.diff()
.setNewTree(newTreeIter)
.setOldTree(oldTreeIter)
.call();
In pullResult.getMergeResult().getMergeConflicts()
ho solo file oldFile
e la raccolta diffs
è vuota.
In un caso semplice (quando io non cambio la "vecchiofile" dal folder2
) la raccolta diff non è vuoto - ha 1 il file "newFile" e pullResult.getMergeResult().getMergeConflicts()
è vuoto Fai (è ovvio).
Cosa faccio di sbagliato? Voglio ottenere file in conflitto e file tirati con successo.
non il comando 'git pull' mostra si file nomi che avevano conflitti insieme con errore di conflitto? –