# # # patch "cmd_othervcs.cc" # from [9e422824e408cc244da6b40156e03b0bf769d4eb] # to [fef4c53eda8394b0a66e055218d2d30b5c9ac26d] # # patch "git_change.cc" # from [36ac90ebc9c461622315a75e53f3d3e2f31b69cb] # to [1ef772764ebb70b98d1d6d5ca4fd9d9379acc256] # # patch "git_change.hh" # from [031cc2efb3ffba1a881f22b485f9ad039e70e56a] # to [f2447c0cbf0311d85622f0aada664bce13ad1f10] # # patch "git_export.cc" # from [86a71cc98ad6b77161b79a057f5b5edabc6761a0] # to [1c7beda746b82bc66d7985eeeaaa296dd6134181] # # patch "git_export.hh" # from [7a82929d4b697da2668cf766734fea3febf065e2] # to [7b94c6c225293d412db35c850c143bba900c6731] # ============================================================ --- cmd_othervcs.cc 9e422824e408cc244da6b40156e03b0bf769d4eb +++ cmd_othervcs.cc fef4c53eda8394b0a66e055218d2d30b5c9ac26d @@ -1,5 +1,5 @@ // Copyright (C) 2002 Graydon Hoare -// Copyright (C) 2009 Derek Scherger +// 2009 Derek Scherger // // This program is made available under the GNU GPL version 2.0 or // greater. See the accompanying file COPYING for details. @@ -40,7 +40,7 @@ CMD(rcs_import, "rcs_import", "", CMD_RE } -CMD(cvs_import, "cvs_import", "", CMD_REF(vcs), N_("CVSROOT"), +CMD(cvs_import, "cvs_import", "", CMD_REF(vcs), N_("CVSROOT"), N_("Imports all versions in a CVS repository"), "", options::opts::branch) @@ -72,8 +72,8 @@ CMD(git_export, "git_export", "", CMD_RE CMD(git_export, "git_export", "", CMD_REF(vcs), N_(""), N_("Produces a git fast-export data stream on stdout"), N_(""), - options::opts::authors_file | options::opts::branches_file | - options::opts::log_revids | options::opts::log_certs | + options::opts::authors_file | options::opts::branches_file | + options::opts::log_revids | options::opts::log_certs | options::opts::import_marks | options::opts::export_marks | options::opts::refs) { @@ -109,7 +109,7 @@ CMD(git_export, "git_export", "", CMD_RE db.get_revision_ids(revision_set); // remove marked revs from the set to be exported - for (map::const_iterator + for (map::const_iterator i = marked_revs.begin(); i != marked_revs.end(); ++i) revision_set.erase(i->first); @@ -122,7 +122,7 @@ CMD(git_export, "git_export", "", CMD_RE // needs author and branch maps export_changes(db, - revisions, marked_revs, + revisions, marked_revs, author_map, branch_map, change_map, app.opts.log_revids, app.opts.log_certs); ============================================================ --- git_change.cc 36ac90ebc9c461622315a75e53f3d3e2f31b69cb +++ git_change.cc 1ef772764ebb70b98d1d6d5ca4fd9d9379acc256 @@ -21,12 +21,12 @@ void using std::vector; void -get_change(roster_t const & left, roster_t const & right, +get_change(roster_t const & left, roster_t const & right, git_change & change) { typedef full_attr_map_t::const_iterator attr_iterator; static attr_key exe_attr("mtn:execute"); - + parallel::iter i(left.all_nodes(), right.all_nodes()); while (i.next()) { @@ -55,15 +55,15 @@ get_change(roster_t const & left, roster attr_iterator exe = file->attrs.find(exe_attr); string mode = "100644"; - if (exe != file->attrs.end() && + if (exe != file->attrs.end() && exe->second.first && // live attr exe->second.second() == "true") mode = "100755"; file_path path; right.get_name(i.right_key(), path); - change.additions.push_back(git_add(path, - file->content, + change.additions.push_back(git_add(path, + file->content, mode)); } break; @@ -81,12 +81,12 @@ get_change(roster_t const & left, roster string left_mode = "100644"; string right_mode = "100644"; - if (left_attr != left_file->attrs.end() && + if (left_attr != left_file->attrs.end() && left_attr->second.first && // live attr left_attr->second.second() == "true") left_mode = "100755"; - if (right_attr != right_file->attrs.end() && + if (right_attr != right_file->attrs.end() && right_attr->second.first && // live attr right_attr->second.second() == "true") right_mode = "100755"; @@ -96,13 +96,13 @@ get_change(roster_t const & left, roster right.get_name(i.right_key(), right_path); if (left_path != right_path) - change.renames.push_back(make_pair(left_path, + change.renames.push_back(make_pair(left_path, right_path)); // git handles content changes as additions - if (left_file->content != right_file->content || + if (left_file->content != right_file->content || left_mode != right_mode) - change.additions.push_back(git_add(right_path, + change.additions.push_back(git_add(right_path, right_file->content, right_mode)); } @@ -114,12 +114,12 @@ get_change(roster_t const & left, roster // re-order renames so that they occur in the correct order // i.e. rename a->b + rename b->c will be re-ordered as // rename b->c + rename a->b -// this will also insert temporary names to resolve circular +// this will also insert temporary names to resolve circular // renames and name swaps: // i.e. rename a->b + rename b->a will be re-ordered as // rename a->tmp + rename b->a + rename tmp->b void -reorder_renames(vector const & renames, +reorder_renames(vector const & renames, vector & reordered_renames) { typedef map map_type; @@ -175,7 +175,7 @@ reorder_renames(vector const rename_stack.pop(); reordered_renames.push_back(rename); } - + reordered_renames.push_back(base); } } ============================================================ --- git_change.hh 031cc2efb3ffba1a881f22b485f9ad039e70e56a +++ git_change.hh f2447c0cbf0311d85622f0aada664bce13ad1f10 @@ -1,6 +1,3 @@ -#ifndef __GIT_CHANGE_HH__ -#define __GIT_CHANGE_HH__ - // Copyright (C) 2009 Derek Scherger // // This program is made available under the GNU GPL version 2.0 or @@ -10,6 +7,9 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. +#ifndef __GIT_CHANGE_HH__ +#define __GIT_CHANGE_HH__ + #include "paths.hh" #include "vocab.hh" @@ -38,12 +38,14 @@ struct git_change std::vector additions; }; -void get_change(roster_t const & left, roster_t const & right, +void get_change(roster_t const & left, roster_t const & right, git_change & change); -void reorder_renames(std::vector const & renames, +void reorder_renames(std::vector const & renames, std::vector & reordered_renames); +#endif // __GIT_CHANGE_HH__ + // Local Variables: // mode: C++ // fill-column: 76 @@ -51,5 +53,3 @@ void reorder_renames(std::vector2s,{s,\:s,+s,t0,g0,^-2,e-2,n-2,p2s,(0,=s: - -#endif // __GIT_CHANGE_HH__ ============================================================ --- git_export.cc 86a71cc98ad6b77161b79a057f5b5edabc6761a0 +++ git_export.cc 1c7beda746b82bc66d7985eeeaaa296dd6134181 @@ -39,16 +39,16 @@ namespace string raw = path.as_internal(); string quoted; quoted.reserve(raw.size() + 8); - + quoted += "\""; - + for (string::const_iterator i = raw.begin(); i != raw.end(); ++i) { if (*i == '"') quoted += "\\"; quoted += *i; } - + quoted += "\""; return quoted; @@ -80,7 +80,7 @@ void } void -import_marks(system_path const & marks_file, +import_marks(system_path const & marks_file, map & marked_revs) { size_t mark_id = 1; @@ -93,7 +93,7 @@ import_marks(system_path const & marks_f char c; size_t mark; string tmp; - + marks.get(c); E(c == ':', origin::user, F("missing leading ':' in marks file")); marks >> mark; @@ -115,14 +115,14 @@ void void -export_marks(system_path const & marks_file, +export_marks(system_path const & marks_file, map const & marked_revs) { ostringstream marks; - for (map::const_iterator + for (map::const_iterator i = marked_revs.begin(); i != marked_revs.end(); ++i) marks << ":" << i->second << " " << i->first << "\n"; - + data mark_data(marks.str(), origin::internal); system_path tmp("."); // use the current directory for tmp write_data(marks_file, mark_data, tmp); @@ -130,7 +130,7 @@ load_changes(database & db, void load_changes(database & db, - vector const & revisions, + vector const & revisions, map & change_map) { // process revisions in reverse order and calculate the file changes for @@ -151,7 +151,7 @@ load_changes(database & db, ticker loaded(_("loading"), "r", 1); loaded.set_total(revisions.size()); - for (vector::const_reverse_iterator + for (vector::const_reverse_iterator r = revisions.rbegin(); r != revisions.rend(); ++r) { revision_t revision; @@ -182,13 +182,13 @@ export_changes(database & db, void export_changes(database & db, - vector const & revisions, + vector const & revisions, map & marked_revs, map const & author_map, map const & branch_map, map const & change_map, bool log_revids, bool log_certs) -{ +{ size_t revnum = 0; size_t revmax = revisions.size(); @@ -206,7 +206,7 @@ export_changes(database & db, ticker exported(_("exporting"), "r", 1); exported.set_total(revisions.size()); - for (vector::const_iterator + for (vector::const_iterator r = revisions.begin(); r != revisions.end(); ++r) { revnum++; @@ -292,10 +292,10 @@ export_changes(database & db, // process comment certs with changelog certs - changelogs.insert(changelogs.end(), + changelogs.insert(changelogs.end(), comments.begin(), comments.end()); - for (cert_iterator changelog = changelogs.begin(); + for (cert_iterator changelog = changelogs.begin(); changelog != changelogs.end(); ++changelog) { string value = changelog->inner().value(); @@ -337,7 +337,7 @@ export_changes(database & db, // emit file data blobs for modified and added files - for (add_iterator + for (add_iterator i = change.additions.begin(); i != change.additions.end(); ++i) { if (marked_files.find(i->content) == marked_files.end()) @@ -348,7 +348,7 @@ export_changes(database & db, marked_files[i->content] = mark_id++; cout << "blob\n" << "mark :" << marked_files[i->content] << "\n" - << "data " << data.inner()().size() << "\n" + << "data " << data.inner()().size() << "\n" << data.inner()() << "\n"; } } @@ -356,7 +356,7 @@ export_changes(database & db, if (log_revids) { message << "\n"; - + if (!null_id(parent1)) message << "Monotone-Parent: " << parent1 << "\n"; @@ -375,7 +375,7 @@ export_changes(database & db, for ( ; date != dates.end(); ++date) message << "Monotone-Date: " << date->inner().value() << "\n"; - for (cert_iterator + for (cert_iterator branch = branches.begin() ; branch != branches.end(); ++branch) message << "Monotone-Branch: " << branch->inner().value() << "\n"; @@ -397,7 +397,7 @@ export_changes(database & db, if (!null_id(parent1)) cout << "from :" << marked_revs[parent1] << "\n"; - + if (!null_id(parent2)) cout << "merge :" << marked_revs[parent2] << "\n"; @@ -407,16 +407,16 @@ export_changes(database & db, for (rename_iterator i = reordered_renames.begin(); i != reordered_renames.end(); ++i) - cout << "R " - << quote_path(i->first) << " " + cout << "R " + << quote_path(i->first) << " " << quote_path(i->second) << "\n"; for (add_iterator i = change.additions.begin(); i != change.additions.end(); ++i) - cout << "M " << i->mode << " :" - << marked_files[i->content] << " " + cout << "M " << i->mode << " :" + << marked_files[i->content] << " " << quote_path(i->path) << "\n"; - + // create additional branch refs if (!branches.empty()) { @@ -442,7 +442,7 @@ export_changes(database & db, << "from :" << marked_revs[*r] << "\n"; // report progress to the export file which will be reported during import - cout << "progress revision " << *r + cout << "progress revision " << *r << " (" << revnum << "/" << revmax << ")\n" << "#############################################################\n"; @@ -451,10 +451,10 @@ void } void -export_rev_refs(vector const & revisions, +export_rev_refs(vector const & revisions, map & marked_revs) { - for (vector::const_iterator + for (vector::const_iterator i = revisions.begin(); i != revisions.end(); ++i) cout << "reset refs/mtn/revs/" << *i << "\n" << "from :" << marked_revs[*i] << "\n"; @@ -467,7 +467,7 @@ export_root_refs(database & db, set roots; revision_id nullid; db.get_revision_children(nullid, roots); - for (set::const_iterator + for (set::const_iterator i = roots.begin(); i != roots.end(); ++i) cout << "reset refs/mtn/roots/" << *i << "\n" << "from :" << marked_revs[*i] << "\n"; @@ -479,7 +479,7 @@ export_leaf_refs(database & db, { set leaves; db.get_leaves(leaves); - for (set::const_iterator + for (set::const_iterator i = leaves.begin(); i != leaves.end(); ++i) cout << "reset refs/mtn/leaves/" << *i << "\n" << "from :" << marked_revs[*i] << "\n"; ============================================================ --- git_export.hh 7a82929d4b697da2668cf766734fea3febf065e2 +++ git_export.hh 7b94c6c225293d412db35c850c143bba900c6731 @@ -1,6 +1,3 @@ -#ifndef __GIT_EXPORT_HH__ -#define __GIT_EXPORT_HH__ - // Copyright (C) 2009 Derek Scherger // // This program is made available under the GNU GPL version 2.0 or @@ -10,21 +7,24 @@ // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. -void read_mappings(system_path const & path, +#ifndef __GIT_EXPORT_HH__ +#define __GIT_EXPORT_HH__ + +void read_mappings(system_path const & path, std::map & mappings); -void import_marks(system_path const & marks_file, +void import_marks(system_path const & marks_file, std::map & marked_revs); -void export_marks(system_path const & marks_file, +void export_marks(system_path const & marks_file, std::map const & marked_revs); void load_changes(database & db, - std::vector const & revisions, + std::vector const & revisions, std::map & change_map); void export_changes(database & db, - std::vector const & revisions, + std::vector const & revisions, std::map & marked_revs, std::map const & author_map, std::map const & branch_map, @@ -40,6 +40,8 @@ void export_leaf_refs(database & db, void export_leaf_refs(database & db, std::map & marked_revs); +#endif // __GIT_EXPORT_HH__ + // Local Variables: // mode: C++ // fill-column: 76 @@ -47,5 +49,3 @@ void export_leaf_refs(database & db, // indent-tabs-mode: nil // End: // vim: et:sw=2:sts=2:ts=2:cino=>2s,{s,\:s,+s,t0,g0,^-2,e-2,n-2,p2s,(0,=s: - -#endif // __GIT_EXPORT_HH__