So Visual Studio officially supports Git now. What does that mean? - visual-studio

I just read an extremely interesting article that apparently as of this past Visual Studio 2012 update, it now has official Git support built in.
My question is, what does that mean exactly? Does this mean that TFS servers can now host Git repositories? Or, does Visual Studio use something like git-tfs behind the scenes to use regular TFS repositories with a Git bridge? Or does this apply to TFS servers at all? Also is using Git outside of Visual Studio which is hosted on TFS plain ol' vanilla git, or is it like the git-tfs bridge?
Also, is there any documentation yet about converting a TFS repository to a Git repository with this support?

Visual Studio Online hosts git repositories and provide integration to TFS work item tracking and builds. We store this information in a proper git repository - it's not a transparent git-tf bridge. Instead, we store git references and objects, although we store them in a SQL Server (SQL Azure) instead of a traditional on-disk git repository format. We do this to integrate with the existing TFS manageability and Team Foundation Service scaling.
Team Foundation Server, the on-premises product that resides in your data center, from TFS 2013 supports git repository hosting. Many features arrive on the hosted Visual Studio Online before arriving in the on-premises product.
Similarly, the Visual Studio integration is a proper git client - again, it's not git-tf. It uses the libgit2 and libgit2sharp projects to provide repository access to a local git repository, as well as network access to provide pushing and pulling to any git hosting service that speaks HTTP. (The SSH transport is not currently supported.) This means that you can push and pull to Bitbucket or GitHub, for example, you need not talk to Team Foundation Server.

Related

Can I auto-update my Github after publishing from Visual Studio?

Is there a way to automate storing code updates to GitHub after a developer publishes a new version of code from Visual Studio (2017 or 2019)?
Or is there a way to automate storing code updates to any code repository?
We also currently use VisualSVN, but are open to other repository software packages if they solve this problem for us.
We publish web projects and console apps to on-prem servers, so my understanding is that GitHub Actions won't work for us (yet).
If you are pushing to an on-premise Git repository hosting server, you can add to that remote repository a post-receive hook.
Said hook can in turn analyze what just got pushed and push it in turn to GitHub.
See git-post-receive-hook-push-to-mirrors as an example of such hook.

Does using Visual Studio with TFS require a persistent connection to TFS from VS?

I'm an IT project manager. A developer on my team is complaining that she keeps losing her connection to TFS and that VS requires a constant connection to TFS to work for her. Our CIO is asking me why she doesn't only need a connection to TFS while checking in and out code. I do not know the answer.
Thank you,
Val
TFVC, Team Foundation Version Control, is one of the ways to store sources in Team Foundation Server (TFS), if your TFS serves is 2015 or later, Git is the new default. TFVC is a centralized version control system and assumes your developer has a persistent connection to the server. This is especially true when the workspace of the developer is configured as a "server" workspace, in which case each file system operation is synced to the central server.
In Workspace Type = Server mode your options are:
Use the Go Offline option to temporarily disconnect from the server and work locally in isolation.
Of Change the workspace type to local, which creates a local folder with a compressed copy of each file in the workspace.
This will reduce the number of interactions with the server, making it more pleasant to work when authentication is messed up. But a developer should be checking in and out code at a regular interval, preferably each change that puts the code in a stable state. I'd get VERY frustrated when even something as a checkin/checkout requires an auth prompt.
But your real problem
Is not whether TFS is prompting for auth, it's why the workstation or the server infra isn't (allowing the) caching of the credentials. This can have many causes:
The TFS server isn't configured with a secure connection (https)
The TFS server name doesn't match the server configuration
A proxy server is interfering
A local development proxy (like Fiddler) is turned on and not configured to ignore the TFS server
The Active Directory policy is forcing the credentials to not be stored
The TPM of the computer isn't working well and keeps resetting
There is a VPN interfering
Some endpoint monitoring system is detecting suspicious behavior and is triggering a re-auth
An incorrect credential is cached in the Windows Credential Manager.
The TFS server is in the wrong internet security zone
The Internet security zone settings are configured to not store credentials
...
...
Solve that and the developer will be much happier.
And TFVC is getting old (and most teams have moved to Git)
As others already commented, TFVC is getting old and many development teams have migrated to Git. Git gives developers a local copy of the sources and its history to work with, giving much more power to the developers to work locally without a need to connect to a central server.
If migration isn't an option (yet), tools like git tfs can help a developer to start working in Git locally, while still connecting to a central TFVC server to send the changes to the rest of the team.
But the long-term solution is to upgrade your development tools and get rid of TFVC.
TFS is getting old (is now Azure DevOps Server)
And while you're at it, TFS is getting old. It has been renamed in 2018 and is now called Azure DevOps Server. Azure DevOps Server 2020 is the latest. If you're having issues with TFS, making sure it's up to date and installed on a recent Windows Server version helps too.

VS Code Mac OSX with TFS

I have installed VS Code to Mac OSX. I would like to connect to my companies TFS server , so I could work on the project from mac as well .
The company is not using Visual Studio Team Services (was VS Online), still using TFS on company servers.
I see that there are ways to connect to Team Services with git settings, but how can I cannot to TFS from Mac VS Code ?
VS Code currently only supports Git, so your company's TFS must be hosting a Git Repostory for that to work. You can access TFVC using Team Explorer Everywhere and/or the cross platform commandline tools. If you want something close to integration with VS Code, consider git-tf(s), which will create a local git repository which you can push to TFS.

Visual Studio Online, Github, Jira, Octopus Deploy

We are looking at using Visual Studio online in an environment with multiple development partners that support a myriad number of systems. Across these partners, each one of them uses their own source control however we are looking at a model that commits code into a repository managed by us.
As part of this, we are looking to support partners that use toolsets such as Github, Jira, Bamboo, TeamCity, Octopus Deploy, etc
Does Visual Studio Online natively integrate with all of these?
When using Visual Studio Online, do accounts need to be setup with each of these services e.g Github?
Will Visual Studio Online support all IDEs e.g. Eclipse, Xcode, etc?
What other considerations do we need to consider e.g. latency, local copies (should connectivity be lost), etc?
If upgrading from Team Foundation Server 2010 to Visual Studio Online, what other considerations do we have to take onboard?
For the purposes of continuous integration & deployment, does Visual Studio Online support this natively?
If there is no native support for Jira for example, are there similar native features available with Visual Studio Online?
If you want integration with GitHub, then the first requirement would be to use Git as your VCS. This also requires you to use Team Foundation Server 2013 (or later) if you want to host it yourself, as earlier versions don’t support Git.
Once you use Git, you can indeed access the repository from VSO with other clients, as it provides a normal Git interface which all Git tooling options can talk to. And you also get the benefits of Git as a DVCS, so you can use it completely offline.
If you want to user other online services (e.g. GitHub), then of course you do need accounts for those services. VSO is something separate on its own.
As for features of VSO, you need to know that it’s technically a Team Foundation Server, so it comes with a range of included tools. For example an issue management, a build server with continuous integration, a team chat room, etc. So you may not need other services.
Visual Studio Online (now Visual Studio Team Services) supports Eclipse, IntelliJ, your favorite Java IDE, Xcode, Visual Studio, or any editor/IDE you like.

How to Deploy On-Premises with Visual Studio Online Continuous Delivery

My team uses Visual Studio Online ("VSO") to manage our ALM.
We already have a push-button build-process in place to build code from our local Git repo (remotely) and deploy it to a Microsoft Azure Website on Azure.
In addition to this we want a local, development-testing environment built and deployed with a push of a button.
What is the best way to integrate an automated, on-premises development-testing deployment into our development pipeline from within VSO's ALM ecosystem?
[We do also own TFS 2012 -- is there a way to leverage it from VSO to drive an on-premises build deployment from our VSO git repo?]
To deploy builds on-premise, I installed an on-premise build server and used it as the default build controller in my build definition.
When installing the build server select your Visual Studio Online url to point the build server to your team project collection.
I used the instructions here
http://myalmblog.com/2014/04/configuring-on-premises-build-server-for-visual-studio-online/
(normal issues when installing a build server remember to copy over your MSbuild folder from a machine with Visual Studio already installed etc...)
I know it's been a while since the question was asked, but this guy did it with an extension to be added to your VSTS account to deploy directly to an on-premise IIS. I'm going to check this solution today but I'm pretty sure it will work.
https://blogs.msdn.microsoft.com/monub/2016/01/20/visual-studio-team-services-release-management-iis-web-deployment-vnext/
UPDATE
Better yet, MSDN released a complete doc for deploying an asp.net app on IIS
https://www.visualstudio.com/en-us/docs/release/examples/other-servers/net-to-vm

Resources