SunriseWorkbench - need synchronisation with Merge

  • Hi everyone.


    I'm working as a software engineer within a team with an iiwa 7 R800.
    My question is about how to work cooperatively with a team on a KUKA robot.


    We have to work together on the same piece of code for a research project. The only way to access the robot (i.e. push and pull our code) is to use the SunriseWorkbench - 1.11.0.7.
    We know that this synchronization is done using GIT.
    The problem is that the SunriseWorkbench offers no merge functionality! The synchronization (using the button "synchronize project" within the SunriseWorkbench) allows only to replace/override your local working tree with the remote (or visa verse) but not to merge commits.
    So at the moment we haven't figure out to work together, which is a fundamental requirement for our project.


    I already tried to realize the merge manually through a shell by performing a fetch to merge afterwards. Unfortunately the fetch fails because there isn't a remote given within the .git/config.
    Just to add the "_KROS_Controller_" as a remote didn't work out. The "_KROS_Controller_" is the remote git repository within the Sunrise Cabinet/Controller.

    Code
    [remote "_KROS_Controller_"]
       url = http://172.31.1.147:23457/git
       fetch = +refs/heads/*:refs/remotes/_KROS_Controller_/*


    If I tried to fetch I got the error "fatal: Couldn't find remote ref refs/remotes/_KROS_Controller_/master".


    :help:


    My question is how to configure the git repository to be able to access the remote "_KROS_Controller_" from the sunrise cabinet/controller - this means to be able to fetch and merge manually.
    Does anybody know a better solution to work cooperatively?


    Thanks for any suggestions.

    Edited once, last by tammoj ().

  • After talking with the KUKA support I figured out a suitable solution to work cooperatively within a team.
    Here is our setup:


    We setup a external (i.e. normal) GIT repo - called teamRepo.
    That teamRepo is selected as the workspace directory for the Sunrise Workbench.
    We imported the existing project SunriseProject from the KUKA Cabinet - called kukaRepo.


    So the structure looks like:

    Code
    Workspace/.git   <-- teamRepo
    Workspace/.gitignore
    Workspace/.metadata
    Workspace/SunriseProjekt
    Workspace/SunriseProjekt/.git   <-- kukaRepo (only used internally from Sunrise Workbench to perform a synchronization)
    Workspace/SunriseProjekt/bin
    Workspace/SunriseProjekt/src
    Workspace/SunriseProjekt/…


    Within the teamRepo's .gitignore (i.e. Workspace/.gitignore) we added:

    Code
    SunriseProject/.git*
    # using "SunriseProject/bin/**/*" to override a potential "!bin/" within SunriseProject's .gitignore
    SunriseProject/bin/**/*


    Be ensure that:
    Never perform any git-actions within the kukaRepo!
    The kukaRepo may not be recognized as a git submodule of the teamRepo! For that temporally rename the SunriseProject/.git directory before you preform the first commit in the teamRepo.
    (see also https://stackoverflow.com/ques…tories-without-submodules)


    Every teammate's laptop has a Sunrise Workbench installation.
    Each laptop is connected via a LAN/switch to the iiwa (aka Sunrise Cabinet) to synchronize. (*)
    The teamRepo keeps track of all source files within the SunriseProject so you can use git-pull,- push and -merge cooperatively.


    (*) To establish a direct connection from your laptop to the Sunrise Cabinet a LAN connection (via a switch) is necessary. The kukaRepo on your laptop (Workspace/SunriseProject) is connected to the remote kukaRepo on the Sunirse Cabinet over this LAN. The LAN uses the IP range 172.31.*.*. The Sunrise Cabinet IP address is 172.32.1.147 and should not be changed. Your machine must be connected to this switch via an extra Ethernet adapter configured with a unique IP address within that range.


    [hr]
    Alternative you also may use a separat pc which is the only connected pc to the Sunrise Cabinet. This pc is setup up like described above.
    To get your modification from you laptop to the iiwa every laptop must push to the teamRepo. At the pc pull from the teamRepo to synchronize (by using the Sunrise Workbench) to the Sunrise Cabinet.
    If you do modifications on the pc (e.g. quick testing) you must push them back on the pc to the teamRepo.


    [hr]
    My initial question about how to modify the kukaRepo itself to fit my requirements is not recommended at all. (The KUKA support told me so!) Using a separated git repository which tracks all files (excepted git and binary files) with the kukaRepo is the only way!



    Hope this will help one or the other. :icon_smile:


    Cheers,
    Tammo

Advertising from our partners