2010-12-14 15 views
5

Tengo un problema gracioso.

Subversion, cambio de nombre, Wha?

Subversion, no tiene permitido cambiar el nombre de elementos con el mismo nombre si la única diferencia es el uso de mayúsculas. Netbeans tiene subversión. Netbeans le permite cambiar el nombre de los archivos si las mayúsculas cambian.

Cambié el nombre de algo llamado eventCreator.php a EventCreator.php en subversión y subí (es una clase). Todo fue bien en Netbeans. De hecho, hice aproximadamente 10 commits más. Intenté descargarlo en otra computadora, y este es el error que ocurre
"No se puede abrir el archivo
C: \ xampp \ htdocs \ MyProject \ scripts.svn \ tmp \ text-base \ eventCreator.php.svn- base ':
El sistema no puede encontrar el archivo especificado. "

Mi repositorio se encuentra en DreamHost. Así que voy a Dreamhost y puedo ir a la carpeta de scripts y ver tanto eventCreator.php como EventCreator.php en el repositorio, pero no puedo descargarlo con netbeans o tortugaSVN.
¿Alguna ayuda?

+0

commit commits no actualiza la línea que dice "10 confirmaciones/actualizaciones más" – Michael

Respuesta

6

Eliminar archivo no es necesario con

svn del http://domain/path/to/eventCreator.php 

o incluso se puede abrir repo browser (desde el menú contextual la subversión) y elimine el archivo existe, sin usar la consola de comandos aburrido ;-)

2

subversión entre mayúsculas y minúsculas . Si le dice que almacene 20 archivos, todos con diferentes combinaciones de casos, los almacenará. Ahora, cuando revisa esos archivos fuera del repositorio, la plataforma en la que se encuentra puede advertirle, negarse a realizar el check-out (como lo hizo en su caso), o simplemente sobrescribir el contenido del primer archivo escrito con el segundo, En tercer lugar, entiendes la idea.

Para resolver esto, la respuesta de zerkms va por buen camino. Elimine la reproducción del archivo que no desea con un navegador repo o alguna herramienta (línea de comando si es necesario) que funcione directamente con el repositorio en el servidor.

Para evitar que esto suceda nuevamente, utilice el case-insensitive.py script del proyecto de Subversion en su secuencia de comandos de enlace de precompilación. Verificará si ya hay un archivo en el repositorio con un caso diferente cuando la confirmación está agregando un archivo. Si lo hay, te permitirá rechazar el compromiso hasta que se resuelva.

Dado que tiene un tercero que aloja su repositorio de Subversion, póngase en contacto con ellos para obtener este enlace si no puede hacerlo con sus herramientas de administración.

+0

Quiere decir subversión * es * distingue entre mayúsculas y minúsculas. – JeremyP

+0

@JeremyP: No, Subversion es sensible a las mayúsculas y minúsculas cuando se trata de nombres de archivos y nombres de directorios. Al igual que Windows, no importa si hay 20 archivos con el mismo nombre, siempre y cuando ninguno de ellos tenga el mismo caso. – jgifford25

+2

No. Eso es incorrecto. En subversión, 'foo.c' y' Foo.c' se refieren a dos objetos diferentes. Esto se conoce como ** sensible a mayúsculas y minúsculas **. es decir, el significado es ** sensible ** al caso. En el sistema de archivos Windows NTFS 'foo.c' y' Foo.c' se refieren al mismo objeto. Esto se llama ** insensible a mayúsculas/minúsculas **. – JeremyP

3

Subversion 1.7 ahora parece manejar case only renames en Windows.

+0

1.7 ya está disponible? Guau. Espero que netbeans al menos se actualicen a 1.6 – Michael

1

Otra forma es simplemente copiar (haga clic derecho en Copiar en el proyecto) el proyecto al nuevo nombre. Esto eliminará todos los rastros del directorio .svn y puede volver a confirmarlo. Sin embargo, también perderá el enlace a toda la edición que se realizó previamente y se cometió en SVN.

1

La cuestión no es subversión, es de Windows (y no, Mac tienen el mismo problema, por lo que no se inician sentirse superior en este caso -. Fanboy)

En Windows, se conservan los casos, pero no significativo en el nombre del archivo. En Windows, estos son todos el mismo archivo:

  • myfile.txt
  • MyFile.txt
  • MIARCHIVO.TXT
  • MyFile.txt

Desafortunadamente, Unix (excepto para el Mac) es a la vez el caso preservar y significativa. Para Unix, todos estos archivos son archivos diferentes.

La hilaridad se produce cuando almacena su repositorio Subversion en un host Linux/Unix, pero utiliza un cliente Windows/Mac. El repositorio Subversion de Unix está rastreando cada variación de capitalización como un archivo diferente, pero el cliente de subversión en su PC piensa que son todos iguales. Hay dos soluciones:

  • utilizar un ordenador Linux para hacer un pago y envío, solucionar el problema, y ​​comprobar de nuevo en
  • Uso de sintaxis svn delete http://.... URL para eliminar una de las copias miscreant, por lo que sólo hay una sola. archivo con ese nombre.