Does cvs2git migrates the Attic folder and the ,v files underneath it to GIT - cvs2git

I am trying to migrate a cvs repo to GIT which has lot of Attic folders and ,v underneath it. How does the cvs2git preserve this removed files to the git repository for future requirements.

CVS uses the Attic to track deleted files. When I used cvs2git (version 2.3) it migrated all those deleted files and put their contents in the new git repo. Of course because the files were deleted, they don't appear in a cloned working copy. Do this to view the log of commits for a deleted file in your working copy cloned from the newly created git repo, which will help you get the file back if you need it:
git log -- path/to/file.py
Hopefully your Attics are in good shape, but if not this SO post discusses corrupt CVS issues - when a file is present and also in the Attic, a situation that should never happen:
CVS comma-v files in Attic and directory
Also see this SO post about recovering files from git:
Find and restore a deleted file in a Git repository

Related

How to create an existing Git repository

I've got a repository. When downloading this repo, instead of cloning it, it seems that I accidentally simply downloaded the source instead. Now I've come to commit my changes and noticed that the folder I'm working in is, in fact, not a repository at all but just some random folder.
I've found various ways of initializing a new repo from existing contents. But how can I initialize an existing repo from my existing contents? I added the remote repo as a remote in the GitHub for Windows client, but it doesn't seem to have had the desired effect.
Just to be clear, the intended outcome is as if I had cloned it properly in the first place- history, diffs of the changes I've made from the latest in the repo, the works.
I've tried some solutions involving git clone, like "Clone into a new folder and then just copy and paste the .git folder". However, this seems to have the effect that Git thinks that I deleted and re-added every line of every file in the repository instead of the changes I really made.
From what we talked about in the comments, you should copy over the actual data to the properly cloned repository as opposed to the .git folder. This way, Git has a chance to pick up the changes without introducing any aberrant or unusual state issues.

git (python/django repo) merge challenge (original repo copied to another repo) now need to merge it back

I have a git repo at repo1URL.git. It's a production repo and I didn't want to mess with it (in hindsight it would have been easier to just create a branch in that repo!).
It's a django app that is very poorly structured (with third party libs added as folders, rather than via virtualenv and pip.
I made a physical copy and deleted the .git folder of the copy, created a new repo at repo1URL-changes.git and added it as a new remote into the copy. Cleaned up things by removing unnecessary folder, etc, and pushed it to the new repo.
Now I'd like to merge those changes into the main production repo. I found the following question: how to import existing git repo into another
I followed the instruction # Selected Answer. But the results of the:
git merge ZZZ
is rather a nightmare! With conflicts even on .png files and almost every other file.
What's the best way to go about this?

Github won't upload some folders of project

I'm trying to use the Github app for Mac to upload a repo, but it won't let me upload some folders. It automatically unchecks their boxes, and pressing 'select all' selects every box other tham then, too. If I tick them again, it will upload everything other than them, and they'll appear on Github only as folder icons, not actually as folders.
One of the folders is my app's example project. The other is some code from another repo.
How can I get it to upload these files?
You need to stage those files first to commit. If not, then those files are not committed and you cannot upload them to github. To stage your files, open your terminal, go to the path of your project and add the unstaged files to commit.
Like this:
git add .
git add -u
the above commands are used to add and stage the unstaged files.
git commit -m "message"
to commit the staged files. (After you staged the changes, you can commit also with github for mac software too).

How to checkout a subfolder from a local svn copy (and not the svn server)?

For some simple Windows batch script, I want to temporarily create a copy of a certain folder in an local working copy of an svn repository at a certain revision. I do not want to checkout directly from the svn server (because then my script needs to know what the server address is, and potentially I would need to authenticate etc.)
And I can not just copy the subfolder, as the hidden .svn folder is higher up.
I have been trying some variations on (with the repo folder containing the .svn hidden folder):
svn co file:///E:/repo/paper#48 E:/temprepo
But that doesn't work. My Windows 7 command prompt answers with
svn: E180001: Unable to connect to a repository at URL 'file:///E:/repo/paper'
svn: E180001: Unable to open an ra_local session to URL
svn: E180001: Unable to open repository 'file:///E:/repo/paper'
I am doing something wrong, or is what I am trying impossible?
Your question seems bit ambiguous. I can think of two ways of looking at this.
Assuming you just want a copy of a sub-folder in a svn working copy WITHOUT the .svn folders.
You can use svn export to copy a given sub-folder of a working copy like this - svn export E:\repo\paper E:\temprepo.
Quote:
And I can not just copy the subfolder, as the hidden .svn folder is
higher up.
EDIT: This file structure is only available in subversion v 1.7. In a subversion client with version 1.6.x sub-folders in a working copy should be self-contained. Meaning you may duplicate it to another place, and do subversion operations like svn update etc. in it.
As you have rightly mentioned in your question, you have working copy of subversion repository and not the repository it self.
You can check out only for a repository that happens to be your subversion server.
When you check out your repository, a pristine version of the repository contents are located inside the ".svn" folders.
This is how svn shows you the diff when your working copy differs from the original contents without routing it's request to server.
It also keeps meta data of your server address and other information which you can see when you do svn info. This also contains your server address as svn url.
Your working copy and the ".svn" folders fully recognize the repository from which it was checked out.
I hope you have understood why you can not checkout from your own working copy.

deleted folder under svn control, replaced with folder of same name with different content, now svn wont work!

I have recently upgraded one of our systems from Code Igniter 1.7.2 to 2.0.1.
Do do this you are required to replaced the system directory with a newer version.
The old CI system was under version control, including the system directory.
When I go to commit I get
So I go to execute the cleanup command and I get
How can I fix this?
Backup the new system directory somewhere else (outside of the SVN working copy), revert the working copy to its old state (or even do a fresh checkout if needed), delete the system folder and commit, then copy the backed up system folder into the working copy, add it to SVN and commit again.
If you just deleted the system folder (without svn remove to let subversion know) and replaced it with some other content, you could first bring back the last committed version of it and then replace or update the content with svn.
Example: Backup and remove the current system folder, do a svn update in "tada", "system" comes back. Now either svn remove it to svn add and commit the newer files or copy the new ones over it and commit the changes.

Resources