Если вы используете клиент оболочки, такой как TortoiseSVN, щелкните правой кнопкой мыши «разрешить использование моего», как упоминает @Adi.
В командной строке это
svn resolve --accept mine-full <FILENAME>
Мелкие копии копируют как можно меньше. Мелкая копия набора является копией структуры набора, не элементами. С мелкой копией два набора теперь совместно используют отдельные элементы.
Глубокие копии копируют все. Глубокая копия набора является двумя наборами со всеми элементами в исходном дублированном наборе.
Мелкий copy: Копирует членские значения с одного объекта в другого.
Глубокий Copy: Копирует членские значения с одного объекта в другого.
Любые объекты указателя дублированы и Глубоко Скопированы.
Пример:
class String
{
int size;
char* data;
};
String s1("Ace"); // s1.size = 3 s1.data=0x0000F000
String s2 = shallowCopy(s1);
// s2.size =3 s2.data = 0X0000F000
String s3 = deepCopy(s1);
// s3.size =3 s3.data = 0x0000F00F
// (With Ace copied to this location.)
Ширина по сравнению с Глубиной; думайте с точки зрения дерева ссылок с Вашим объектом как корневой узел.
Мелкий:
переменные A и B относятся к различным областям памяти, когда B присвоен, эти две переменные относятся к той же области памяти. Более поздние модификации к содержанию любого немедленно отражаются в содержании другого, поскольку они совместно используют содержание.
Глубоко:
переменные A и B относятся к различным областям памяти, когда B присвоен значения в области памяти, которая точки к копируются в область памяти, на которую указывает B. Более поздние модификации к содержанию или остаются уникальными для A или B; содержание не совместно используется.
В объектно-ориентированном программировании тип включает набор членских полей. Эти поля могут быть сохранены или значением или ссылкой (т.е. указатель на значение).
В мелкой копии, новый экземпляр типа создается, и значения копируются в новый экземпляр. Ссылочные указатели также копируются точно так же, как значения. Поэтому ссылки указывают на исходные объекты. Любые изменения в участниках, которые хранятся ссылкой, появляются и в оригинале и в копии, так как никакая копия не была сделана из ссылочного объекта.
В глубокой копии, поля, которые хранятся значением, копируются как прежде, но указатели на объекты, хранившие ссылкой, не копируются. Вместо этого глубокая копия сделана из ссылочного объекта, и указатель на новый объект хранится. Любые изменения, которые внесены в те ссылочные объекты, не будут влиять на другие копии объекта.
Я не видел короткое, легкое для понимания ответа здесь - таким образом, я дам ему попытку.
С мелкой копией, на любой объект, на который указывает источник, также указывает место назначения (так, чтобы никакие ссылочные объекты не были скопированы).
С глубокой копией, любой объект, на который указывает источник, копируется, и на копию указывает место назначения (таким образом, теперь будет 2 из каждого ссылочного объекта). Это рекурсивно вызывает вниз дерево объектов.
Короче говоря, это зависит от какой точки к какой. В мелкой копии возразите, что B указывает для возражения местоположению A в памяти. В глубокой копии все вещи в объектной ячейке памяти A копируются для возражения ячейке памяти B.
Эта статья Wiki имеет большую схему.
char * Source = "Hello, world.";
char * ShallowCopy = Source;
char * DeepCopy = new char(strlen(Source)+1);
strcpy(DeepCopy,Source);
'ShallowCopy' указывает на то же местоположение в памяти, как 'Источник' делает '. DeepCopy' указывает на различное местоположение в памяти, но содержание является тем же.
var source = { firstName="Jane", lastname="Jones" };
var shallow = ShallowCopyOf(source);
var deep = DeepCopyOf(source);
source.lastName = "Smith";
WriteLine(source.lastName); // prints Smith
WriteLine(shallow.lastName); // prints Smith
WriteLine(deep.lastName); // prints Jones