Comments (17)
btw how do i iniate a merge? if i have to iniate a merge from git-commandline or gitextensions, i face the same problems as above:
-can not unlink files (while ue4 editor is open)
- asset not visible(if editor was closed during merge)
from uegitplugin.
Hi,
First of all, the Source Control in UE4 has been built around Perforce:
- with file locking, so no conflict ever. For Subversion they enforced the same Locking mechanism.
- without any "feature branches" so no merge nor any rebase
To have a good experience with Git, you should try to use a workflow that avoid relying on branch/merge, and try to avoir conflicts by splitting the workload and using other collaborative tools.
I didn't try merge-conflicts in a while, but you have(had) to close the Editor, use you GUI/CLI git tool, than reopen the Editor to manage conflicted files. Then you can only choose one version or the other to keep , so this it not a real merge at all!
Let me know if this is not working as intended.
Cheers!
from uegitplugin.
Okay if it is just pick a or b that it is already the same as with git itself -.-
If you reopen the editor during conflicts, you can not pick the assets anywhere.
Thanks for the answer
from uegitplugin.
No, I mean, there IS a "Blueprint Visual Diff merge viewer" (and texte comparisons for other assets like Materials).
But the Visual Diff viewer is just a viewer showing what has been change in the Blueprint, help choose the "best" version,
from uegitplugin.
I only know of the diff/merge tools visible when a blueprint is open but they always work only for the currently open blueprint. I know of no other option :/
from uegitplugin.
When you create two git branches, modify the same blueprint on the two branches, and then merge those two branches together (with UE4 Editor closed) you get a conflict.
- "git status" should says that the Content/Xxx/Yyy_BP.uasset file is in conflict.
- then, launching the Editor, you should get a "Warning" icon on your Blueprint in the Content Browser
- then the context menu should give you an option to "Solve" (or "Merge", I don't recall precisly) the conflict
- this should open a window with a 3-way Merge Window (3 views) of your Blueprint, with colors showing the diffferences
Let me know if this is not working for you, and in which version of the Engine.
from uegitplugin.
Also, it could be a problem with UE vs Git LFS! I never tried to merge with Git LFS!
Edit: and Git LFS Diff Viewer only works since UE4.16 Preview
from uegitplugin.
Nope, Blueprint will not showup in ContentBrowser
from uegitplugin.
AH ok, so with upcoming 4.16 it should work? (at least getting the conflicts in editor?)
from uegitplugin.
I am not sure if will work since I never tried to merge with Git LFS.
The newest version of the plugin fixes the "visual diff" in the History of a Blueprint
Also, you can try to install the plugin from my release page to replace the one shipped with Unreal Engine so that you can already try to see if it works for you.
I will try and will update the plugin if needed!
from uegitplugin.
Please, test the 2.0 release of the plugin, installing (clone or unzip) it in your project "Plugins" folder (create this folder if this is your first project plugin)
Then report here if it works any better
from uegitplugin.
Mergeconflicts so far don't show up, however i simply readded my changes afterwards(thus overriding those introduces from rebase) and tried to diff/merge against previous commit. Was not able to load the bp for diffing :/
EDIT: tried with v2
from uegitplugin.
Could you send me your log please?
from uegitplugin.
Git LFS visual diff in history (compare with previous commit) should work under Windows but would require Git 2.10 (README.md could be more precise about that)
from uegitplugin.
I use
git 2.12.0.windows.1
GitLFS 2.0.2
I'll look into sending logs later. Right now i started duplicating my assets to get the diffs
from uegitplugin.
I think that I am having the same problem as @Memnarch. If a blueprint asset is marked as a conflict by Git, it won't be visible in the Content Browser at all. There is no way to get to the BP merge tool.
Furthermore, trying to use the tool on any non-conflicted BP gives the error:
Aborted Load of "<asset path>" because we could not get the requested revision
Failed to load asset(s) for merge.
git version 2.14.2.windows.1
git-lfs/2.3.0 (GitHub; windows amd64; go 1.8.3; git 4dd2bf73)
from uegitplugin.
Hey, we are actually experimenting a problem with the rebase conflict process.
The merging conflict process is working smoothly, I have both the source and destination blueprint diff in Unreal when I merge from my branch feature to develop. However, when doing a rebase of my feature branch on develop and there is a conflict on a BP, I do not have the feature branch version on Unreal.
I inspected the unreal logs, and find out the same error on git commands :
Warning LogSourceControl fatal: HEAD does not point to a branch
It seems that when the HEAD is detached, the plugin does not handle the diffs correctly.
Even more, in a rebase situation, with the plugin source control active before starting Unreal and once the editor started, if I open the source control window, let the settings as they are (Git LFS 2) and click "Accept Settings" I have an error, the same as the one above.
I'll try to inspect the code and fix it because we really need to be able to resolve conflicts on uasset in a rebase process ! But if anyone has already fixed it or know how to do it, please share it :p
Here is a part of the unreal logs :
Log LogSourceControl ExecuteSynchronousCommand(UpdateStatus)
Log LogSourceControl RunCommand: 'git symbolic-ref --short --quiet HEAD'
Warning LogSourceControl RunCommand(symbolic-ref) ReturnCode=1:
Warning LogSourceControl
Log LogSourceControl RunCommand: 'git log -1 --format="%h"'
Log LogSourceControl RunCommand: 'git status --porcelain --ignored "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl ParseStatusResults: 2) General case for one or more files (D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset, ...)
Log LogSourceControl Status(D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset) = 'UU Content/Blueprints/BP_PlayerCharacter.uasset' => 8
Log LogSourceControl RunCommand: 'git ls-files --unmerged "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-remote origin HEAD detached at 03a47a2 "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git log --pretty= --name-only HEAD..HEAD@{upstream} "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Warning LogSourceControl RunCommand(log) ReturnCode=128:
Warning LogSourceControl fatal: HEAD does not point to a branch
Warning LogSourceControl
Log LogSourceControl RunCommand: 'git log --follow --date=raw --name-status --pretty=medium MERGE_HEAD --max-count 1 "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Warning LogSourceControl RunCommand(log) ReturnCode=128:
Warning LogSourceControl fatal: ambiguous argument 'MERGE_HEAD': unknown revision or path not in the working tree.
Warning LogSourceControl Use '--' to separate paths from revisions, like this:
Warning LogSourceControl 'git <command> [<revision>...] -- [<file>...]'
Warning LogSourceControl
Log LogSourceControl RunCommand: 'git log --follow --date=raw --name-status --pretty=medium "D:/Unreal/Cassandras-Fate/Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-tree --long 29a5c25f "Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-tree --long 679995f8 "Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-tree --long 3e1c5d96 "Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-tree --long 1198eb53 "Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git ls-tree --long 8f6c710b "Content/Blueprints/BP_PlayerCharacter.uasset"'
Log LogSourceControl RunCommand: 'git log -1 --format="%H %s"'
Log LogSourceControl RunDumpToFile: 'git -C "D:/Unreal/Cassandras-Fate" cat-file --filters 29a5c25f58a5d487cadf6a32109fdd172e7c6af1:Content/Blueprints/BP_PlayerCharacter.uasset'
Log LogSourceControl Writed 'D:/Unreal/Cassandras-Fate/Saved/Diff/temp-29a5c25f58a5d487cadf6a32109fdd172e7c6af1-BP_PlayerCharacter.uasset' (127723o)
from uegitplugin.
Related Issues (20)
- Update for 4.26 HOT 2
- Diffing/merging materials
- Packaging fails with LFS Plugin in project
- Cannot use plugin if user has no credential manager installed HOT 1
- Too many redirects or authentication replays HOT 1
- UE4 Plugin Unable To Handle Umlaut U HOT 2
- Very slow performance HOT 7
- Support for UE5 projects HOT 2
- Enable discussions feature HOT 1
- Detect Git LFS username HOT 1
- Maybe archive this repo and link to an updated fork? HOT 9
- Git localized path
- Connection Error:Failed Git remote connection
- UE5 Support HOT 2
- Hello, Does the plugin work stable with UE5? HOT 1
- SourceControl: Error: Operation 'UpdateChangelistsStatus' not supported by source control provider 'Git LFS 2' HOT 1
- Engine versioning support with this plugin HOT 1
- Plugin was built with a different engine version HOT 1
- UE Git Plugin Not allowing checkin and checkout of files
- Blueprints reported as changed when changes made only in parent
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uegitplugin.