How does multiple developers work with the same repository (Unity3D)? - plasticscm

I have been trying out Plastic SCM for a few weeks now.. and we still have issues in figuring out how to use Plastic SCM when multiple developers are working with the same repository.
We are currently working with Unity3D for our project, and for each time we try to merge our changes we always end up with some sort of problem.
We are currently using the Plastic SCM Cloud Edition.
What we have tried is to work directly against the Cloud Repo, but that ended up with problems merging (since the cloud edition isn't able to merge content "on the fly" in the cloud).
We then ended up creating local repositories that we then replicated the cloud repository to by simply pulling the repo, then made some changes and then tried to push the local repository. However.. we then received a new error telling us something about the MemoryStream...
So... how are we supposed to work with Plastic SCM Cloud Edition when in a small team of 2-5 developers when working with Unity3D?

Your last approach make sense if you don't need an on-premise server in your office.
Plastic Cloud Edition is the sum of the Plastic SCM software plus a Plastic Cloud server and storage all packaged together in a single pay-as-you-go subscription.
The client software and local repositories are installed on each developer’s computer, and then he will push/pull to the cloud organization.
You commented that your workflow requires branching and merging, so the checkin, update, create branch and merge will be local operations and then you be just connecting to the cloud to push/pull your changes.
This "MemoryStream" message could be a "hard drive is full" issue, but we would need more details to confirm it. If you reach us, we will try to debug it we will also help you to configure your setup: support at codicesoftware dot com

Related

Maintaining Two Different Source Control Servers

We have been hired by a client who would like us to check in code to their Azure Devops Team Foundation Version Control server.
We have our own small team of developers that will work on this project and commit changes to our own TFVC server first. Once all check-ins are approved, we would then like to commit all of our changes to our client's TFVC server. We have been given a single login to their TFS system, so we would like to check in our code into their system using the single login that was provided to us. The client does not need to know the history of all of our own developer's work, we would like them to see our check in as a single author. We don't want to migrate, as this will be a common task for us.
What's the most straightforward way we could do this?
It is not possible to sync code on 2 different TFS server. Since you work in one workspace (command line and GUI) at a time. And a workspace cannot span servers.
The only workaround here is manually copy/past your code directly through windows file system. Finally check in code to your client's TFVC server.
The better solution is to convince your clients to use Git repositories instead of TFVC. There is a lot to win here! And you could migrate your sources with git-tfs with all history.

Configure a backup schedule for Git version control with VSTS

I found articles on GIT back up and restore but I did not find any on Microsoft TFS Scheduled backup for GIT version control.
This document describes on how TFS's traditional versioning can be scheduled for automatic back up. Configure a backup schedule and plan for Team Foundation Server
However, I did not find any link where I can read that "GIT repository is also included in schedule". I am not a TFS expert and I do not have access to TFS server to verify in person. So any help is appreciated.
The tutorial you are refer which is Scheduled Backups tool. It' a build-in tool on the Scheduled Backups page in the TFS Administration console.
It' the whole database back up not only referring to source control, but also work items, pull requests, builds, test plans or anything else that the service offers.
As a limitation, you need both an administrator for TFS and a member of the SQL Server System Administrators group.
And no need to to verify in person, it's under SQL server, when you want to use the backup, just restore the database.
If you are actually using the online VSTS . For now there is no build-in tool and got a uservoice:
Provide a backup service for Visual Studio Team Services
https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/5339461-provide-a-backup-service-for-visual-studio-team-se
However if you just want a git repository(source code) back up, you could use some 3rd-party tool to achieve this:
We use the VSO Rest API to query our VSO account and get all the data
we need. Since in VSO you can only have one Team Project Collection,
we retrieve all the team projects of the default collection. Each of
these team projects can have multiple repositories that need to be
backed up. A folder is created for each team project and saved to a
location on disk that can be configured in the app.config. When the
team project folder is created, the task loops over each repository in
the team project and creates folders for each repository.
Source Link
You can also fork it on GitHub here. Certainly, you should also be able to use this for on-premise TFS also use the API, just need to change some part.
TFS is implemented the way to keep Git repositories in the SQL Server database, too. Thus, when you follow the instructions from the article you reference, the source code will also be included in the backup, no difference whether it is TFVC or Git.

My workspace became out of sync with the repo as I was working. Now, I cannot submit my changes nor can I download the latest from the repo

I was working on code while our artist was working on his binary files. He had submitted his files to the repo. After that, I tried to submit my updates and got the following error,
The merge operation is not currently available in the cloud server
I get this message too when I try to download updates so my workspace is in sync.
Help!
As "https://www.plasticscm.com/cloud/index.html" states developers should use distributed servers in order to be able to merge. Artists are fine with Gluon. Notice that if all your development is done at br:/main then developers can also use gluon.
From the message you are getting it seems you are directly working with the cloud repo instead of your local one. Merge in the Plastic SCM Cloud is not supported yet, it will be available in a near future.
Now, you should create a local repository, pull the cloud content into your local server and start working, once you are done with your local changes you can push the new changesets to the Plastic SCM Cloud repository.
The Sync view will help you a lot with this process of pulling/pushing information: More info. This is how your workflow should be:
As you are currently having local changes that can't be submitted because the merge lock I do recommend you first to backup the changed files and then start working distributed, restore the files in your workspace and you will be able to checkin and then push back to the Cloud repository.

Sharing code between 2 TFSVC repositories with git-tfs

I have 2 different TFS repositories (one using Visual Studio Online and another using my own local on premise TFS instance) which I want to keep in sync using git-tfs. How do I need to set things up so that I can work locally in git and push changes up to both repositories? Please note both TFS repositories are using TFSVC.
As the main developer of git-tfs, believe me, that's not possible...
Git-tfs can only manage one TFVC repository.
Short answer: Not support.
If you want to sync Visual Studio Online and local TFS. You can use the TFS Integration Tools to setup a unidirectional sync, that should allow you to ensure that a TeamProject on your local TFS system remains in sync. However, they are complicated to setup and will be painfull to run. And There are commercial options that are ridiculously expensive, like OpsHub.

TFS as a local repository for Visual Studio Online

We just started test-running VSO for source control/Scrum management on a new project. We currently use TFS running in-house for other projects. I love the VSO scrum tools, but, with today's VSO outage, we are questioning whether VSO is practical for us as a source control.
After researching this afternoon, I don't see a solution to have a local backup of VSO. My current thought is to use a local git repo that pushes to VSO. The problem with that is switching technologies is not an easy sell, especially when we already have the local TFS to maintain.
We have thought of using VSO to manage scrum tasks and keep source control in-house, but I really don't like having the two separated (can't link commits and I think that everything should be in one place if possible).
Yes, for you purists out there, we do have a big whiteboard with index cards and stickies for our sprint tasks, but we're still looking at the cloud as another option ;)
To condense my rambling into a real question: Is there a way to use in-house TFS as a local repo that pushes to VSO, or to at least have it mirror VSO?
Are you concerned with VSO losing your source (extremely unlikely), or just experiencing the occasional outage and not being able to check in or get latest for a time?
Using git for source control would be the simplest approach, as you've stated. You'll have the full repository on your development machine and can make whatever commits you like. Changing source control would mean upskilling the team on git, creating a new team project and using git-tfs or git-tf to migrate the history, so I understand why you might not want to change.
With TFVC, if you are using a local workspace you should still be able to work during an outage and make changes. You just won't be able to check in. If VSO has an outage it'll be an inconvenience but shouldn't stop you working.
In terms of using TFS as a mirror that pushes automatically to VSO, the simple answer is "No, you can't do that".
If you used git, you could set you local repository to have two remotes, one being the local TFS server and the other being VSO, but it would still be up to you to push/pull the changes manually between both servers yourself to keep them aligned.

Resources