Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Best way to collaborate with team member on single project?

Discussion in 'Scripting' started by Hero101, Jul 30, 2015.

  1. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,375
    So the point of BitBucket is having a remote for your repository that is always online and available for pushing and pulling from.

    But that doesn't mean you NEED BitBucket, Github, or anything like.

    The point of git is that it's distributed... unlike SVN or TFS which requires a master server where all versioning takes place.

    You can start using git on your machine right away and get versioning on your machine. You can then push to and pull from any remote, may it be whomever you want. If you want a single point where all branches get pushed to, have someone on the team be deemed the 'master' and everyone always pushes to them (or just set up a dummy somewhere that just acts as the master).

    It's usually best if whoever this is, is the most IT member of the group. Like usually on a team someone takes on the role of researching/deciding/implementing tech decisions... they should probably keep a hold of that master repo everyone pushes too. Because the critical part is making sure that it's also backed up...

    Honestly, any team working together should have a dedicated remote not just for their repo, but for everything. A machine always online and accessible by everyone for sharing off all sorts of resources. May it be a purchased vm in the cloud, or a cheapo box in the corner of someones room. For example, I have this 179 dollar dell server in my closet for this purpose:
    WP_20160519_21_41_32_Pro.jpg
     
    Last edited: Jun 8, 2016
  2. Hero101

    Hero101

    Joined:
    Jul 14, 2015
    Posts:
    158
    You just bumped my thread that is almost a year old :p You might want to create a new thread to better find an answer to your question.
     
  3. Zorranco

    Zorranco

    Joined:
    Jul 15, 2014
    Posts:
    23
    Yes yes, I know :D, but I think there's nothing wrong with the bump. Although old, the subject is still perfectly current. This is the only thread covering the topic in the last years in this forum. Others can take advantage on all the info puored here. This thread was revealing to me and, as such, I think it can be to others.

    Lordofduct opened our eyes with his info and, finally, and we will try to mount a server inside a closet. The main problems being, our broadbands (very, very tiny, xDSL type) and the own Github...it is difficult to start your own repo at the beggining when you know nothing about this console commands. Open router ports, SSH authentication, daemons and such.
     
  4. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,375
    One of my earliest network setups for such stuff was just a webserver setup with ports 80, 8080 and 443 (https) ports forwarded to it on my router.

    On said server I put a simple website with links to stuff (it soon upgraded to some wiki based project tracking website... that sucked).

    And I installed SVN on it.

    No SSH, no nothing like that, just plane old SVN and the SVN security. Because honestly it was a small team and that's really all we needed.

    We also used SVN (instead of git) because git is complicated as all hell! Oh I've learned to use it since back then, but that was when it first appeared and the documentation was horrible and it was all in terminal and no one had any consistent information on how to use it.

    And still to this day, lots of people struggle with it. We use it at my office, and uggghhhh, no one knows how to use it. Literally, I'm the only one on my team that has any idea what to do... and I'm constantly combating them. Most annoyingly, they use git like it's SVN.

    Heck, doing this with Windows Server is really easy, IIS and VisualSVN takes like 30 minutes to setup and get running with no terminal commands at all.

    (svn -> git conversions exist if some day you decided to go to git... I currently use TFS for my home stuff, I was NOT going to teach my artist how to use git, he can't even use notepad without crashing his computer)
     
  5. DeLong

    DeLong

    Joined:
    Feb 22, 2009
    Posts:
    34
    I use Collaborate for my indie projects and it's nice but don't like that you can't branch or create multiple repositories...at least I haven't figure that out yet.

    On another note. I haven't read every post here so if this is redundant I apologize...I've used Plastic SCM on a three person team for about 2-3 years where I work without too much trouble as long as you communicate when changing binaries (scenes). It's pretty easy and has a nice interface. It was designed for projects with a lot of binaries (ie art assets and scenes). But be aware that it's a little bit of a paradigm shift in thinking regarding the way it works. It isn't as "atomic" as Perforce and Git. However, I recommend it if you want simpler methods of branching and merging. They have a cloud version and monthly sub that isn't too expensive...$10 month for several seats I believe...but check out their website for details. https://www.plasticscm.com/pricing.html
     
  6. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,375
    Note, you can go into Edit->Project Settings->Editor Settings

    There you'll find an option for Asset Serialization Mode. Set it to 'Force Text' and the scenes will be serialized in text mode (you'll also want 'visible meta files' too). That way scenes won't be treated as binaries.

    The serialization is yaml. I have little experience with Plastic SCM and its merging, but it should be fairly straight forward once you get a look at it.

     
  7. BlackPete

    BlackPete

    Joined:
    Nov 16, 2016
    Posts:
    970
    You can also set up UnityYAMLMerge for third party tools: https://docs.unity3d.com/Manual/SmartMerge.html

    I actually haven't tried this yet, since in our company we just tell each other not to touch certain prefabs until we're done with them :D (Or get exclusive locks on them).

    In a previous company using Perforce, we forced text-only assets and even then prefab merges (using p4merge) was all but useless because blocks would jump around so much that doing a diff was all but useless. So we'd just sigh and hit "Resolve using 'mine'" and prayed for the best.
     
    theANMATOR2b likes this.
  8. DeLong

    DeLong

    Joined:
    Feb 22, 2009
    Posts:
    34
    Yes, I am aware of that, and I believe that's how we have it set. However, our project scenes are HUGE. Our company makes driving simulators with big worlds. We've had weird things happen with projects where we had to rebuild libraries even after rolling back. And it takes hours. So honestly, we're too chicken to try it - LOL :D. I guess I could run some tests...yeah don't have a good excuse on that, except to say we're too lazy...er, I mean busy. But if anyone has merged large scenes via the yaml setting, with or without Plastic, I'd love to know. Maybe I'll give it a try.
     
    theANMATOR2b and lordofduct like this.
  9. lordofduct

    lordofduct

    Joined:
    Oct 3, 2011
    Posts:
    8,375
    I feel ya