Hi all! We are currently using MS Team Foundation Server (TFS) 2018 with TFVC for hosting our source repositories. We are using Visual Studio (2019) for development and will continue to use it. We use a minimalist branching workflow in that there is a main development branch, then at regular intervals, we branch off what will be the customer release versions. These different releases have to be maintained for several years each. Bug fixes may go to either branch and may then be merged into the others. Note that we are talking TFS/TFVC style "heavyweight" branches here.
The repository is rather big. It contains two very distinct parts, namely Code (20K files, <1GB) and Tests (300K+ files, >12GB). The Tests part does contain a lot of binary files - primarily test databases for functional tests. But also a great deal of small text files. I am aware that this might be an arguable choice to have it included in the repo, but we need to be able to track history and always be able to align the test stuff with the code stuff, across our release branches, at any point in time, so it seemed a natural choice. The Tests part isn't needed by every developer though. In TFS/TFVC, we have the common practice to "cloak" the Tests for people not concerned and "map" them to different parts of the file system for those who are. We are now considering moving our repos to Git. Outside of of TFS that is, because we will be ditching TFS entirely. I am not an expert on Git. This leads to several questions: 1) It seems that the above size and layout may pose problems when using Git? Especially, we don't want people not using the Tests part to suffer any burden (disk space, checkin/out performance) when working locally. Is it possible? Should we structure our repository differently? Also is it possible to map the Tests part to a different part of the filesystem? 2) Concerning the branch layout. With TFS, developers were used to having several working copies (called workspaces in TFS), for working on different subjects and the different release branches are physically represented in different filesystem folders. This means for example that people would be able to have several instances of VS open on different code bases, both in terms of releases and subjects. If I understand the function of <git checkout> well, it replaces the entire local working directory files with the ones from the requested branch. This would lead to unpleasant consequences, in terms of context switching, rebuild times etc. Is there a way we can maintain the habits of having different working folders for releases and subjects, without having to duplicate the entire (big) repository? We'd prefer solutions that work well with Visual Studio. (VS does integrate git support natively in the IDE for common tasks) Hoping for Beginner-friendly answers and recommendations. Best Regards, Lars R. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/git-users/24430cd5-11fd-4c4f-911e-11d80997f3a2n%40googlegroups.com.