svn: после обновления проекта до новой версии файлы копируются на компьютер, но не добавляются в проект
Я использую последние версии Tortoise и VisualSVN клиент / сервер. Я пытался обновить до предыдущей ревизии и обратно, но ситуация не изменилась.
Кто-нибудь знает, почему это происходит?
@ Бен Да, я знаю это. Но ты не понимаешь мою проблему. Например, один парень фиксирует файл image.jpg. Я обновил свою рабочую копию проекта до новой редакции. Но этот файл не добавляется в решение, и при построении решения возникает ошибка (например), что файл image.jpg не найден. Но я могу вручную добавить этот файл в решение, потому что он находится в папке моего проекта (он загружается после обновления до последней версии). Вы меня понимаете?
UPD.
ХОРОШО. Спасибо всем, кто пытается мне помочь. Может быть, я не очень понятно объясняю, поэтому попробуйте еще раз поподробнее.
У меня есть сервер (ПК) с VisualSVNserver и хранилищем. У меня на компьютере установлен плагин TortoiseSVN и VisualSVN для Visual Studio.
Мы работали над проектом (я не один) и успешно фиксируем изменения и оформляем заказ. После одного коммита (я не знаю номера, их было несколько) возникла эта проблема.
Если я обновляю VisualStudio, я вижу файл в хранилище, но файл решения игнорирует его? Или я даже не вижу файл в моем макете Visual Studio.
Если я не вижу файл в VisualStudio, могу ли я увидеть файл с помощью Проводника Windows? (И убедитесь, что Windows Explorer настроен на показ невидимых файлов!)
Да, да, после этой фиксации хранилище содержит изменения. Я вижу его в репозитории (через интерфейс веб-сервера) и вижу его с помощью Windows Explorer (на моем ПК, в папке с локальной рабочей копией проекта), но я не вижу его, когда открываю решение в VS (Я могу использовать в Solution Explorer Add->Existing item и добавить эти файлы, но я думаю, что это неправильно).
Поэтому я попытался обновить до предыдущей версии и обратно (я думал, что это может решить мою проблему), но это не работает.
Да, может быть, это потому, что некоторые файлы не были добавлены в хранилище ВНУТРИ VS, но как я могу исправить проект? (сейчас у меня сломан проект).
Если я выполню чистую проверку с TortoiseSVN без VisualStudio, я вижу файл?
Что вы имеете в виду "без VisualStudio"? Я всегда использую плагин VisualSVN для этого. Я делаю чистую проверку, но это не решает проблему.
2 ответа
Visual Studio хранит список файлов в собственном файле проекта. Если вы хотите добавить файлы в проект и попросить других людей подобрать эти файлы в своем проекте, вам также необходимо поставить файлы проекта под контроль версий.
Вы используете VisualStudio? Вы должны использовать плагин INTERNAL Subversion для VisualStudio, а не TortoiseSVN. Мой личный фаворит - АнхСВН. Однако VisualSVN тоже делает это. Вы используете плагин VisualSVN в VisualStudio?
Ваше описание не описывает слишком много:
Я использую последние версии Tortoise и VisualSVN клиент / сервер. Я пытался обновить до предыдущей ревизии и обратно, но ситуация не изменилась.
Кто-нибудь знает, почему это происходит?
Какая ситуация не изменилась? Что вы имеете в виду, что вы обновили до предыдущей ревизии и обратно?
Subversion не изменяет хранилище до тех пор, пока эти изменения не будут успешно зафиксированы в хранилище. Вы можете добавлять и удалять файлы. Вы можете изменить файлы. Но, пока вы не совершите эти изменения, никто не увидит их.
И для того, чтобы кто-то увидел последние внесенные изменения, этот пользователь должен обновить свою рабочую копию. Пользователь, который добавил image.jpg
зафиксировать свои изменения, а также добавить файл? Если они этого не сделали, это проблема, которая у вас тут есть.
Вы говорите о том, что файл не добавляется в решение.
- Если я обновляю VisualStudio, я вижу файл в хранилище, но файл решения игнорирует его? Или я даже не вижу файл в моем макете VisualStudio.
- Если я не вижу файл в VisualStudio, могу ли я увидеть файл с помощью Проводника Windows? (И убедитесь, что Windows Explorer настроен на показ невидимых файлов!)
- Если я выполню чистую проверку с TortoiseSVN без VisualStudio, я вижу файл?
Если файл находится в чистом извлечении непосредственно из TortoiseSVN, выполненного полностью за пределами VisualStudio, это означает, что файл был успешно добавлен, но VisualStudio его игнорирует. Это произойдет, если пользователь добавил файл за пределами IDE VisualStudio (возможно, непосредственно с TortoiseSVN). Это большой толстый гудок нет-нет.
Чтобы VisualStudio работал, вы должны позволить VisualStudio обрабатывать все файлы. Вы добавляете файл в VisualStudio. Это позволяет VisualStudio узнать о файле и убедиться, что он находится в файле решения. Если вы используете AnkhSVN, он будет автоматически добавлен в ваш репозиторий Subversion, когда вы добавите файл INSIDE VisualStudio. (Вам все еще нужно зафиксировать изменение в Subversion, чтобы файл действительно находился в хранилище, чтобы другие могли его извлечь).
IDE, такие как VisualStudio, разработаны, чтобы сделать вашу жизнь проще. Эти IDE отслеживают ваши файлы и следят за тем, чтобы они были включены в сборки и размещены в нужном месте в конечном развертываемом артефакте. В старые времена мы писали Makefiles
вручную (у нас не было тогда клавиатуры, только чернильница и перо). Makefiles были сложными и сложными. Взгляните на несколько примеров. IDE делают это для вас, поэтому вы можете сосредоточиться на написании своей программы, а не на том, чтобы убедиться, что то, что у вас есть, правильно собирается.
Однако для того, чтобы среда IDE выполняла свою работу, вы должны практически выполнять всю свою работу в среде IDE, чтобы среда IDE знала, что происходит. Когда вы добавляете, перемещаете, переименовываете, удаляете или изменяете файл, вы должны убедиться, что это сделано ВНУТРИ IDE VisualStudio. Таким образом, VisualStudio знает о файле и может изменить свое решение по мере необходимости. Среда также знает о временных невидимых файлах, таких как *.suo
а также *.user
файлы в VisualStudio и знает, не добавлять эти типы файлов в исходный репозиторий Subversion.
Я не уверен, если это отвечает на ваш вопрос. Вы должны быть более конкретными. Дайте нам несколько лучших примеров. Расскажите нам точно, какие шаги вы сделали и что именно вы видели.
Просмотрите другие вопросы на этом сайте и посмотрите несколько примеров хороших подробных вопросов. Если бы я не ответил на ваш вопрос. Не говорите мне, что я не понимаю вашу проблему. Уточни свой вопрос, чтобы я мог понять. Прямо сейчас я просто стреляю в темноте, делая ужасные предположения о том, что ваша проблема может быть основана на моем прошлом опыте.
Если это помогает, выберите галочку в ответе, чтобы мы знали, что на этот вопрос дан ответ. Также добавьте комментарий, объясняющий, как это помогло. И все же вернитесь и перефразируйте ваш первоначальный вопрос, чтобы точно понять, в чем проблема. Таким образом, если у других людей есть подобные проблемы, они могут найти этот вопрос и посмотреть, каким будет решение.
Это делает этот сайт немного более полезным для миллионов программистов, которые зависят от этого сайта.