TEST(libgit2, TGitPatches) { CAutoTempDir tempdir; git_repository_init_options options = GIT_REPOSITORY_INIT_OPTIONS_INIT; options.flags = GIT_REPOSITORY_INIT_MKPATH | GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE; CAutoRepository repo; ASSERT_EQ(0, git_repository_init_ext(repo.GetPointer(), CUnicodeUtils::GetUTF8(tempdir.GetTempDir()), &options)); CAutoConfig config; ASSERT_EQ(0, git_repository_config(config.GetPointer(), repo)); EXPECT_EQ(0, git_config_set_string(config, "core.autocrlf", "true")); EXPECT_EQ(0, git_config_set_string(config, "core.safecrlf", "true")); CAutoRepository repo2(tempdir.GetTempDir()); ASSERT_TRUE(repo2.IsValid()); CAutoIndex index; ASSERT_EQ(0, git_repository_index(index.GetPointer(), repo2)); CString testFile = tempdir.GetTempDir() + L"\\safecrlf-failure.txt"; EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncrlf\r\n")); EXPECT_EQ(0, git_index_add_bypath(index, "safecrlf-failure.txt")); EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"lf\nlf\n")); EXPECT_EQ(-1, git_index_add_bypath(index, "safecrlf-failure.txt")); EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncr\rcrlf\r\n")); EXPECT_EQ(0, git_index_add_bypath(index, "safecrlf-failure.txt")); EXPECT_EQ(0, git_config_set_string(config, "core.autocrlf", "input")); CAutoRepository repo3(tempdir.GetTempDir()); ASSERT_TRUE(repo3.IsValid()); ASSERT_EQ(0, git_repository_index(index.GetPointer(), repo3)); EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncrlf\r\n")); EXPECT_EQ(-1, git_index_add_bypath(index, "safecrlf-failure.txt")); }
void main() { string thePath = "C:\\Users\\Martin\\Desktop\\TestingFolder"; string timestamp = __TIMESTAMP__; cout << endl << "TimeStamp before concatenation: " << timestamp; for (string::iterator i = timestamp.begin(); i < timestamp.end(); ++i) { if (*i == ':' || *i == ' ' || *i == ' ') timestamp.erase(i); } cout << endl << "TimeStamp after concatenation: " << timestamp; string folderwithDate = thePath + timestamp; cout << endl << "Folder along with TimeStamp" << folderwithDate; std::wstring stemp = std::wstring(folderwithDate.begin(), folderwithDate.end()); LPCWSTR sw = stemp.c_str(); ::SHCreateDirectoryEx(NULL, sw, NULL); vector<string> folders = FileSystem::Directory::getDirectories("C:\\Users\\Martin\\Desktop\\TestingFolder"); for (auto folder : folders) cout << endl << folder; sPtr rootElement = makeTaggedElement("Dependency"); for (auto folder : folders) { if (folder != "."&&folder != "..") { sPtr folderElement = makeTaggedElement("Package"); folderElement->addAttrib("Name", folder); rootElement->addChild(folderElement); cout << endl << folder; } } XmlDocument xmlFolderDocument(makeDocElement(rootElement)); std::ofstream file; file.open("PackagesDependency.xml", ios::ate); file << xmlFolderDocument.toString(); file.close(); string xmlString = xmlFolderDocument.toString(); XmlDocument xml(xmlString); XmlDocument xmlInputFile("PackagesDependency.xml", XmlDocument::file); vector<sPtr> packages = xml.element("Package").select(); cout << "No. of Packages found: " << packages.size(); vector<string> foldersList; for (auto package : packages) { if (package->getAttrib("Name") != "."&&package->getAttrib("Name") != ".."&&package->getAttrib("Name") != "") { cout << "Hello\n"; foldersList.push_back(package->getAttrib("Name")); } } vector<string> filesList; for (auto folder : foldersList) { std::vector<std::string> files = FileSystem::Directory::getFiles(thePath + "\\" + folder); filesList.insert(filesList.end(), files.begin(), files.end()); } for (auto file : filesList) cout << endl << file; sPtr XMLroot = makeTaggedElement("Packages"); sPtr packageElement = makeTaggedElement("Package"); packageElement->addAttrib("Name", "Package 1"); XMLroot->addChild(packageElement); sPtr versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "1"); versionElement->addAttrib("Directory", "Package1_1"); versionElement->addAttrib("Status", "Closed"); packageElement->addChild(versionElement); versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "2"); versionElement->addAttrib("Directory", "Package1_2"); versionElement->addAttrib("Status", "Open"); packageElement->addChild(versionElement); packageElement = makeTaggedElement("Package"); packageElement->addAttrib("Name", "Package 2"); XMLroot->addChild(packageElement); versionElement = makeTaggedElement("Version"); versionElement->addAttrib("Name", "1"); versionElement->addAttrib("Directory", "Package2_1"); versionElement->addAttrib("Status", "Open"); packageElement->addChild(versionElement); XmlDocument xmlMessage(makeDocElement(XMLroot)); //cout << xmlMessage.toString(); cout << endl; /*string fileSpec = "Package XML Structure.xml"; XmlDocument file(fileSpec, XmlDocument::file); XmlDocument* filePointer = &file;*/ /*Repository repo; repo.addPackageInfoXML(&xmlMessage); vector<PackageDetails> packages = repo.getPackageVersions("Package 1"); cout << endl << "Printing all Packages with name: Package 1"; for (auto packg : packages) { packg.print(); }*/ cout << endl; string xmlInputFileName = "PackagesStructure.xml"; XmlDocument xmlMessagefromDisk(xmlInputFileName, XmlDocument::file); cout << endl << "Printing XML read from disk: " << xmlMessagefromDisk.toString(); Repository repo2("C:\\Users\\Martin\\Desktop\\OODFolder"); repo2.addPackageInfoXML(&xmlMessagefromDisk); repo2.closePackageVersion("Package 1", "2"); cout << endl << "Printing XML read from disk after closing module status: " << xmlMessagefromDisk.toString(); string xmlOutputFileName = "PackagesStructure.xml"; cout << "Writing file to output: " << xmlOutputFileName; ofstream xmlFileWrite; xmlFileWrite.open(xmlOutputFileName, ios::ate); xmlFileWrite << xmlMessagefromDisk.toString(); cout << endl; /*try { XmlDocument xmlMessagefromDisk(xmlInputFileName, XmlDocument::file); cout << "Printing XML read from disk: " << xmlMessagefromDisk.toString(); } catch (std::exception& ex) { std::cout << "\n\n " << ex.what(); }*/ cout << endl; /*PackageDetails package = repo.getLatestPackageVersion("Package 1"); cout << endl << "Printing latest package version with name: Package 1"; package.print(); cout << endl; packages = repo.getPackageVersions("Package 2"); cout << endl << "Printing all Packages with name: Package 2"; for (auto packg : packages) { packg.print(); }*/ cout << endl; }