Source control - Reading Files - CV
With TortoiseSVN creating a local repository is as easy as right clicking on a directory and Choosing
TortoiseSVN -> Create repository here
I would recommend to create a designated repository folder. Lets say C:\SVN
And a repository of each project
Say C:\SVN\Project1 so right click on Project1 to make it a repository
You can than continue and Create folder structure, BUT for local repository with only 1 contributor I don't see the advantages. This is good when forking is anticipated.
NOTICE: The full address of the repository highlighted in blue
file:///<Absolute path to Project>/<Project Name>
A Repository will manage our files versions. We, however, work with a local(Checked-out) copy
Ad hoc recommendation to create some Projects folder
for example c:/Projects
and add a directory per project so in our case
c:/Projects/Project1
we than go to that Project directory, right-click on the empty space and do SVN-Checkout
You fill the URL of the repository and normally it should just be fine to just click OK.
Once that is done, we have a repository at c:/SVN/Project1 to handle the versioning for us (We don't normally touch it).
And a working local copy at c:/Projects/Project1 where we Add/Remove elements as well as check-in and check-out using TortoiseSVN
Unlike SVN in windows, for GIT there 2 two installations required
But otherwise the Creating local repository is similar to the TortoiseSVN.
Assuming I want to keep all my GIT repositories at c:/GIT and I have a repository for Project1 at c:/GIT/Project1
We create the two folders, right click on Project2 folder and
To creating our working copy (We do not touch the repository), We create the folder c:/Projects/Project2, go to that folder and right-click anywhere.
Than we choose Git Clone. Just like SVN we supply the location of the repository
et voilla.
GitHub is an (mostly free) online repository service, so it has some advantages
Disadvantages
First, you must create a GitHub account
And than you can install GitHub Desktop for windows which should provide you will the interface to create Repositories and work with them. BitBucket is an alternative
Text Files
Usually read using streaming operators
#include <iterator> // For output_iterator
fstream file("filename", ios::out | ios::binary);
vector<char> buffer(istreambuf_iterator<char>(file)), istreambuf_iterator<char>());
file.close();
#include <iterator> // For output_iterator
fstream file("filename", ios::out | ios::binary);
int i;
string str;
file >> i >> str; // Reads and integer and a string, separate by whitespace
file.close();
Can be entirely read using the istreambuf_iterator
Binary files
files are read using read operator which also specifies the number of bytes to read.
std::fstream fstr(fileName, std::ifstream::binary | std::ifstream::in)
char buffer[100];
fstr.read(buffer, 100)
fstr.close()