Server computer died and the repositories were lost, how to recover? - visual-studio

I had a server that I linked to my current PC as "Z:\", and I had a repository there that I used for my programming commit/updates. There were multiple people working on the program, which warranted the need for a repository. We worked with Visual Studio and VisualSVN.
Unfortunately, my server died and we couldn't get it to start back up, so we've lost the repository. I have since bought and replaced my old server with a new one, but I'm having trouble re-creating the repository. For argument's sake, let's say that the copy of the program on my PC is the most updated one. How do I re-create the repository so that everyone can update/commit from there again?

In case there are multiple users who need access your repository, you should use a server, not direct file access schema (file://).
You must plan a backup strategy for your server and the repositories.
If you lost the storage that was holding the repositories, you lost the revision history of your projects. However, you should have the local copies of the project's data on your computers in form of working copies.
Search for working copies of your projects. The working copies will help you recover the latest state of your data and import it to a new SVN repository. Make sure that you do not import the hidden .svn metadata directory.

Related

How Can I Re-Baseline an Azure Repo

I'm a rank novice in Azure DevOps and I was using a local coding project in VS 2019/Team Explorer to learn about GitHub, Azure, version control, pipelines, PRs, etc. I created a project, added files and, for quite a few months, I thought I was getting the hang of it. A bit of overkill, but it was worth the learning experience.
Then a few days ago, after a month's hiatus, I returned to complete work on a local branch and nothing seemed to work correctly. I can't recall what errors initially appeared (I attempted way too many "solutions" without really understanding what I was doing) but edit conflicts showed up, I couldn't sync, pushes didn't work, and nothing I could think of would allow me to resynchronize (not in the Team Explore sense) with the remote repo. Edits I make in local files no longer show up as Changes in Team Explorer ("There are no unstaged changes..." despite my editing files, no "Commit" or "Stash" command is enabled).
How do I wipe the project's repo slate clean in Azure? I just want to start over, learn from my mistakes and carry on fresh.
I would like to establish a new baseline, if you will, clear all the branches, commits, PRs, and the work items. I would like to keep the Project settings, the Overview (Summary, Wiki, Dashboard) and possibly the pipelines.
Do I need to create a new project?
Any advice would be appreciated.
For the issue in Visual Studio:
You could try to re-connect the Project in visual studio and clone the Azure Repo to a new Path.
In this case, you can get the latest Azure Repo content again. Then you could make changes in local and push them to azure repo.
For the requirement: establish a new baseline
You don’t need to create a new project. You can directly create a new repo in the current project and push the files to the new repo.
Here are the steps:
Step1: Navigate to the old repo and select the branch that needs to be moved to the new repo. You could use the “Download as Zip” option to download all files to local machine.
Step2: Create a new Repo in the current project.
Step3: Unzip files on local machine. Connect to the new Repo in Visual Studio.
Then you can add all files as changes to push to azure repo.
The new repo will have no old branches, PRs and commits. But other parts will not be affected.
Hope this helps.

Extract the last 1000 revisions from svn server windows

We have windows 2008 server with SVN repository, i would like to move this to new windows 2008 server but to new Visual SVN server.
Our SVN repository has grown really big and it contains few projects. Im planning to extract the last 1000 revisions from the repository and then separate the projects. Once i have these i would like to load these projects on to a new SVN server as separate repositories. At the same time i do not want to lose the history. When i get people to relocate their repository checkout to new server, i want the users to be still be able to see the history.
First of all is this possible and if so whats the best way to do this.
If this is not possible, then what is closest to my target that i can achieve?
Many Thanks
Shoaib
Read SVN Book, ask SVN-admin to perform his job
Anyway
svnrdump dump URL/OF/ROOT/OF/PROJECT -r $HEAD-1000:$HEAD > dumpfile
for every project in the old repo
svnadmin load --force-uuid < dumplfile
in every new empty repository

working with git on not connected computers

I sometimes work in projects where I do development on two computers which are not connected.
A typical example is creating reports in BIDS.
The workflow looks like this:
I create a project/folder in corporate TFS
Use git-tfs to create local git repository
Develop the report and commit to local repository (and some checkins to tfs)
Clone my repository to the customers computer (using vpn/rdp).
Do some development on the customers computer and push/pull with my repository.
(Sometimes the work starts in customer end)
My question is now what to do when I don't have a vpn or rdp connection. I have a temporary ftp I can use but sometimes USB-stick is the only way.
I have looked into format-patch / am but don't understand how I create the initial repository.
Can I just zip the .git folder and unzip in the other end to get started or is there a better way?
format-patch seem to create one file per commit. Is there an easy way to merge/unmerge these?
(It is just me working in the project so I don't branch / rebase)
Github might work in some cases but I don't want to open the can of worms with storing customers data in the cloud.
Yes, you can just copy .git folders around. Once you have two repositories with a common history, you can use git-format-patch and git-am.
But probably better suited for your case is the use of git-bundle. It creates binary bundles that contain the whole history of a branch from which you can fetch and pull. The example in the reference page shows nicely how to use it.

Two Different CVS servers (remote and local) for one project (CVSNT, WinCVS client)

There is a project that uses CVSNT/WinCVS for Version Control. This is the central repository. Locally checked out folders contain hidden sub-folder called "CVS".
I tried to install CVSNT server locally and use second instance of WinCVS to manage(version control) local temporary changes before committing to the central repository.
But that is not working because when checking out from the second(local) repository it still uses "CVS" sub-folder name for its working files.
Anybody knows if it is possible to configure CVSNT server and/or Client to use different name for this sub-folder? And if yes, how?
So far I'm using TortoiseSVN. It creates folders too, but they called ".svn" so there is no interference. It is integrated in Windows shell, which I don't like.
A sandbox is tied to a given repository (which is regitered in one of the files in the hidden CVS folders). You can't use the same sandbox to commit locally and remote (are you tring to mimic a DVCS? Use one of them if you need them). You can't change the folder name (but changing the CVS source files...), but beware WInCVS use them as well because they contains informations about the files status.
You have two options:
The CVS way: create your own development branch, commit to that, merge with the main branch when your code is ready. Of course the CVS server has to be reachable all the time.
The DIY way: create two sandbox, one from the local repository, one from the remote one, move files between them as you need. This is a more error prone way, IMHO.
Of course you can try to use two different VCS, but you will end up with a lot of headaches then. Better to use Git, Mercurial or the like that do what you need without any special configuration.

How to take backup of StarTeam project

I have a project repositiory on Start Team server.
I need to take regular back up the same.
How can I achieve this?
The Star team backup steps are given in the Appendix C of the “The StarTeam Administrator’s Guide.pdf”
It depends on what you mean by backing up the Project. If you mean backing up the entire repository then StarTeam makes this really easy. You just need a snapshot of the DB and a full copy of the repository files (full steps are documented.) However, if you mean backing up a specific Project in the repository, and ONLY that Project, with all history intace, then this is not currently possible--or at least it is a major challenge.
StarTeam used to have an ability to Import/Export projects but they discontinued support and development of that tool years ago. If you wish to back up a single Project independent of the rest of the server, then this is still possible, and useful in the case where you want to split the repository into a separately managed repository. Here is how to do that:
Create a duplicate repository including all of the repository files.
Delete everything from the clone except for the Project(s) that you want to split off -- note that in StarTeam 2011 the Project Delete was broken, so you may need to do this in a direct SQL query which marks the projects/views as deleted. Contact Support if you run into problems deleting manually, especially if you have a large repository.
Once your clone has been pruned of unnecessary projects, run the Online Purge tool until all projects and respective files have been removed from the DB and the Vault.
You can now change what you need to change on the new repository, such as the users, groups, security, etc. without affecting the first repository.
Once you have validated the new repository is working properly, you can then run a similar process on the first repository to get rid of the projects that were split off.
Another potential use for this is if you had reached end of life for a project and you wanted to keep it offline and backed up but wanted it to be restorable with full history on demand (for regulatory purposes, etc.) while being freed up to remove it from the active repository so you can make other projects run faster. Though this is probably best done in batches of projects as the process is currently quite labor intensive to perform.

Resources