Нет, нет причины, по которой вы когда-либо делали бы это:
OtherObject other_object = create_other_object();
other_objects.push_back(&other_object);
Это создает временный объект, и вы сохраняете указатель в списке, а затем объект уничтожается.
В этом главное отличие Python. В Python каждый объект является ссылкой на объект Python, даже целые числа. В C ++ у вас есть объект в стеке (как у вас) или в куче (созданный через new
, make_unique
...). Если вы хотите имитировать поведение Python, вам нужны объекты в куче.
Существует только три допустимых шаблона, в зависимости от того, что делает create_object()
:
make_unique
, чтобы получить копию. Этот паттерн обычно не очень полезен и не практичен. std::unique_ptr<OtherClass> create_other_object();
OtherClass* create_other_object();
std::vector<std::unique_ptr<OtherClass>> other_objects;
void method() {
other_objects.push_back(create_other_object());
}
"svnadmin hotcopy" на самом деле копирует весь репозиторий в другое местоположение. Копия неотличима от исходного репозитория и может на самом деле использоваться в качестве самого репозитория. Так, необходимо смочь скопировать результаты svnadmin hotcopy назад к местоположению хранилища и иметь совершенно допустимый, восстановленный репозиторий.
Преимущество hotcopy по обычной копии файловой системы состоит в том, что он уважает механизм блокировки Подверсии.
Я сделал бы намного больше, затем просто выполняет hotcopy каждую ночь. Я использовал бы "svnadmin дамп" для создания истории изменений в dumpfile, который может быть восстановлен рабочему репозиторию.
Необходимо создавать резервную копию этих dumpfiles для записи на ленту или удаленный диск, как стандартная процедура резервного копирования. Если поврежденный репозиторий сохраняется за несколько дней, прежде чем он будет пойман (такой как в выходные или праздник), можно вернуться к последнему хорошему файлу.
Как часть Вашего ежедневного резервного копирования, Вы могли бы хотеть работать svnadmin verify <REPOSITORY>
Вы могли или проверить оригинал или hotcopied.
Определенно сделайте это прежде, чем восстановить от резервного копирования.
можете быть Вы, хотят изучить мой ответ на подобный вопрос: "Восстановите резервные копии SVN из нескольких файлов"
Необходимо также думать о стратегии, восстанавливают SVN-workingcopies: если Вы просто восстановите hotcopied (или выведенный) repo все workingcopys, которые находятся на более высоком пересмотре, то будет недопустимо, и разработчики должны проверить снова. обычно это занимает намного больше времени, чтобы быть снова на ходу, чем восстановление repo один.
Проблема на дампах: они являются очень трудоемкими, чтобы создать и воспроизвести.
Также, если Вы будете использовать сценарии рычага, то они будут включены в Ваш hotcopy, но они не будут в Ваших дампах.
Это сказано, что я рекомендовал бы комбинацию hotcopy и дампа на фиксацию