Ошибка SVN - Не рабочая копия

Примечание: Преобразование в строковое преобразование

Это происходит просто, если вы пытаетесь рассматривать массив как строку:

$arr = array('foo', 'bar');

echo $arr;  // Notice: Array to string conversion
$str = 'Something, ' . $arr;  // Notice: Array to string conversion

Массив не может быть просто echo 'd или конкатенируется с строкой, потому что результат не определен. PHP будет использовать строку «Array» вместо массива и вызвать уведомление, чтобы указать, что это, вероятно, не то, что было предназначено, и что вы должны проверять свой код здесь. Вероятно, вы захотите что-то вроде этого:

echo $arr[0];  // displays foo
$str = 'Something ' . join(', ', $arr); //displays Something, foo, bar

Или зациклируйте массив:

foreach($arr as $key => $value) {
    echo "array $key = $value";
    // displays first: array 0 = foo
    // displays next:  array 1 = bar
}

Если это уведомление появляется где-то, чего вы не ожидаете, это означает переменную, которую вы мысль - это строка, на самом деле это массив. Это означает, что у вас есть ошибка в коде, которая делает эту переменную массивом вместо ожидаемой строки.

214
задан raam86 16 July 2014 в 00:20
поделиться

12 ответов

Если Вы добираетесь "не рабочая копия" при выполнении рекурсивного svn cleanup, мое предположение - то, что у Вас есть каталог, который должен быть рабочей копией (т.е. .svn, в каталоге на верхнем уровне говорится так), но это пропускает свое собственное .svn каталог. В этом случае Вы могли попытаться просто удалить/переместить тот каталог и затем сделать локальное обновление (т.е. rm -rf content; svn checkout content).

, Если Вы добираетесь not a working copy ошибка, это означает, что Подверсия не может найти надлежащее .svn каталог там. Проверьте, чтобы видеть, существует ли .svn каталог в contents

, идеальное решение является новым контролем, если это возможно.

125
ответ дан Phobis 23 November 2019 в 04:26
поделиться

упоминания @JesperE , что необходимо изменить uuid. Следующее должно помочь Вам достигнуть этого.

На SVN 1.5 +, можно сделать svnadmin setuuid; можно тогда проверить, что это было установлено правильно с помощью svnlook uuid. На более ранних версиях SVN это - более трудный процесс. См. http://chestofbooks.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html

Дополнительно, UUID "m/reponame" выглядит подозрительным. Я полагаю, что это должно быть отформатированное шестнадцатеричными числами число как рабочая копия, поэтому возможно, это действие улучшит вещи повсюду вокруг:-)

[я первоначально прокомментировал ответ @JesperE , но создал этот ответ для создания его более очевидным для людей и более полезным для Google. Я с тех пор удалил свои комментарии.]

0
ответ дан Community 23 November 2019 в 04:26
поделиться

Вы, должно быть, удалили SVN - основной файл из Вашего проекта (которые являются файлами только для чтения). Из-за этого Вы получаете эту ошибку.

Выезд новый проект снова, объедините изменения (если таковые имеются) Вашего более старого проекта SVN с новым с помощью "Winmerge" и фиксируйте изменения в последнем выезде.

0
ответ дан Samiksha 23 November 2019 в 04:26
поделиться

Это могло быть рабочее несоответствие формата копии? Это изменилось между svn 1.4 и 1.5, и более новые инструменты автоматически преобразовывают формат, но затем более старые больше не работают с преобразованной копией.

0
ответ дан agnul 23 November 2019 в 04:26
поделиться

svn: репозиторий в 'svn://repourl/reponame/foldername' имеет uuid 'm/reponame', но туалет имеет 'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

, Каждая подверсия repo имеет уникальный идентификатор (uuid). Подверсия использует это, чтобы удостовериться, что repo является на самом деле тем же при выполнении вещей как переключение. Необходимо, вероятно, изменить uuid на сервере для совпадения с прежде.

0
ответ дан JesperE 23 November 2019 в 04:26
поделиться

Обходное решение: Переименуйте каталог, который 'не работает копия' Контроль/обновление/восстановление этот каталог снова файлы Перемещения от переименованного каталога до новых изменений Фиксации

Причина: Вы внесли некоторые изменения в некоторые файлы в соответствии с .svn каталогом, это повреждает 'рабочую копию'

3
ответ дан abatishchev 23 November 2019 в 04:26
поделиться

Я сделал новый контроль от того же проекта до другого местоположения, затем скопировал .svn папку с него и заменил моей старой .svn папкой. После этого вызванный svn обновляют функцию, и все синхронизировалось правильно актуальное.

0
ответ дан 23 November 2019 в 04:26
поделиться

Я попал в аналогичную ситуацию ( svn: 'paper' не является каталогом рабочей копии ) другим способом, поэтому я решил опубликовать свою боевую историю ( упрощено):

$ svn add papers
svn: Can't create directory 'papers/.svn': Permission denied

Ой! исправить разрешения ... затем:

$ svn add papers
svn: warning: 'papers' is already under version control
$ svn st
~     papers
$ svn cleanup
svn: 'papers' is not a working copy directory

И даже перемещение документов и запуск svn up (который работал для OP) не исправил. Вот что я сделал:

$ mv papers papers_
$ svn cleanup
$ svn revert papers
Reverted 'papers'
$ mv papers_/ papers
$ svn add papers

Это сработало.

47
ответ дан 23 November 2019 в 04:26
поделиться

Я только что получил «не рабочую копию», и для меня причиной был Automouter на Unix. Просто новый «cd / path / to / work / directory» сделал свое дело.

1
ответ дан 23 November 2019 в 04:26
поделиться

Если вы создали файл в новой директории, вместо 'svn add newdir/new file' используйте 'svn add newdir', потому что вам нужно добавить эту директорию. По умолчанию все файлы внутри каталога будут добавлены.

.
2
ответ дан 23 November 2019 в 04:26
поделиться

Я решил его с помощью

  1. Копировать резервную копию пострадавших папок
  2. SVN Revert Защита задействующихся папок
  3. Вставить файлы обратно из резервной копии

в моем случае проблема была вызвана удаленным .svn- файлы.

6
ответ дан 23 November 2019 в 04:26
поделиться

То же самое, мне нужно было обновить папку 'contrib':

  1. Переместил старую папку,
  2. Скопировал новую
  3. Скопировал папки .svn в каждую (всего три в моем случае) новую папку.

В моем случае проблема была связана с удалением папок .svn.

Решено.

1
ответ дан 23 November 2019 в 04:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: