2008-08-18 12 views
24

He estado utilizando Subversion para el control de código con TortoiseSVN para interactuar con el servidor durante los últimos meses, ¡y en general ha estado funcionando muy bien! Sin embargo, de vez en cuando mi IDE FoxPro cambiará el caso de una extensión de archivo, sin previo aviso, donde "program.prg" se convierte en "programa. PRG") TortoiseSVN aparentemente toma esto como el primer archivo fue eliminado, llegando a ser marcado como "faltante" y el segundo nombre aparece como "sin versión", causando estragos en mi capacidad para rastrear los cambios en el archivo. Entiendo que Subversion tiene su origen en el mundo sensible a las mayúsculas y minúsculas de * nix pero, ¿hay alguna forma de controlar este comportamiento en Subversion o TortoiseSVN para que el nombre de archivo no distinga entre mayúsculas y minúsculas cuando se usa con Windows?¿Puedo hacer que Subversion + TortoiseSVN no distinga entre mayúsculas y minúsculas para Windows?

+0

¿Por qué no puede simplemente cambiar el nombre de todos esos archivos a .PRG de una vez? ¿O FoxPro lo cambiará aleatoriamente a minúsculas también? –

Respuesta

20

Desafortunadamente, Subversion distingue entre mayúsculas y minúsculas. Esto se debe al hecho de que los archivos de Subversion pueden verificarse tanto en sistemas de archivos sensibles a mayúsculas y minúsculas (por ejemplo, * nix) como en sistemas de archivos que no distinguen entre mayúsculas y minúsculas (por ejemplo, Windows, Mac).

This pre-commit hook script puede ayudarlo a evitar problemas al registrar archivos. Si no resuelve tu problema, mi mejor sugerencia es escribir un pequeño script para asegurarte de que todas las extensiones estén en minúscula y ejecutarlo cada vez antes de registrarme/salir. Será un PITA, pero tal vez tu mejor opción.

+1

TortoiseSVN tiene una función de ajuste de casos. Si TSVN detecta que un nombre de archivo en la copia de trabajo cambió de nombre solo en el caso, restaurará el caso en el archivo. (Las herramientas de línea de comando SVN no hacen esto.) –

+0

Ese script dio el archivo no encontrado, pero el autor Stefan lo menciona aquí; http://stackoverflow.com/questions/5393395/why-svn-import-option-fails-to-detect-file-duplicatio – AnneTheAgile

2

Uso TortoiseSVN con VFP, y maneja casi todo sin problemas la caja volteando. La única vez que no lo es si tengo el archivo abierto en el IDE cuando intento hacer la confirmación: el bloqueo del archivo que VFP mantiene confunde. ¿Es aquí donde entra su problema o hay otros problemas?

Hice una presentación en FoxForward el año pasado sobre el uso de VFP con Subversion: la mayor parte de la presentación trata sobre la línea de comandos, pero hay un par de diapositivas que tienen enlaces a herramientas que te ayudan a trabajar con Subversion en VFP. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4

+0

¡Gracias por la información! Las tablas, formas, etc. de tratamiento binario de VFP son un desafío para trabajar en SVN. –

+0

VFP = Visual FoxPro – AnneTheAgile

1

Kit, usted comentó anteriormente que los archivos de origen binario de VFP son difíciles de trabajar en Subversion. El enlace que di más arriba menciona un par de herramientas para hacerlo más fácil, pero el que yo trabajo es la utilidad TwoFox de Christof Wollenhaupt: convierte un proyecto de VFP a texto solamente. Tienes que ejecutarlo manualmente, pero no tengo ningún problema con eso.

http://www.foxpert.com/docs/cvs.en.htm

+0

Gracias Garret, sin embargo, el enlace de descarga de TwoFox está roto en la página que ha vinculado. La herramienta de conversión sería muy útil ya que estaba lidiando con problemas de FoxPro-Subversion esta mañana. En cualquier otro lugar, ¿podría obtener una descarga para TwoFox o existe una mejor opción? –

+0

Lamento que no haya visto esto antes. Para que quede registrado, acabo de consultar el sitio de Christof y la descarga sigue siendo buena. Supongo que fue solo un error temporal ... – SarekOfVulcan

2

creo que el mayúsculas y minúsculas al azar sobre las extensiones no es al azar en absoluto. Recuerdo haber probado esto. Si modifica un programa desde el administrador del proyecto. Al hacer clic en el botón modificar, digamos. Y luego guarde los cambios, la extensión es minúscula. Si realiza un comando de modificación desde la ventana de comandos y guarda los cambios, la extensión es mayúscula. Aparentemente, los codificadores de Microsoft no se preocuparon de que el caso de extensión fuera el mismo.

+0

Esto confirma el patrón que he visto desde que publiqué esta pregunta, gracias. –

4

Windows admite la distinción entre mayúsculas y minúsculas, pero debe enviar los indicadores POSIX correctos en CreateFile desde la API de Windows. Es posible que haya que cambiar una clave de registro (SFU/Tools para Unix y Ultimate Windows 7 ya tiene esta entrada de registro configurada para que Windows admita nombres de archivo que distingan entre mayúsculas y minúsculas).

Windows está diseñado fuera de Unix, pero cosas como Explorer.exe y otros programas están diseñados para no permitir la distinción entre mayúsculas y minúsculas para la compatibilidad con versiones anteriores y la seguridad (principalmente cuando se trata de ejecutar dos notepad.exe vs. NOTEPAD.EXE, donde caps es un virus o malware).

Pero Vista + tiene atributos de seguridad que lo hacen obsoleto.

TortiousSVN simplemente no admite pasar esta bandera de posix al hacer y renombrar archivos.

0

No, seguro que no puede. SVN distingue entre mayúsculas y minúsculas a menos que deba volver a escribir el código de alguna manera ... es de código abierto.

Cuestiones relacionadas