windows - subir - tortoise svn pdf
¿Puedo hacer que Subversion+TortoiseSVN no distinga entre mayúsculas y minúsculas para Windows? (7)
Creo que las mayúsculas y minúsculas aleatorias de las extensiones no son aleatorias 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.
He estado usando 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, ocasionalmente mi FoxPro IDE 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 que significa que el primer archivo fue eliminado, convirtiéndose en marcado como "perdido" 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?
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).
Este script de enlace previo a la confirmación puede ayudarlo a evitar problemas cuando ingresa 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.
Kit, comenta anteriormente que es difícil trabajar con los archivos fuente binarios de VFP 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.
No, seguro que no puedes. 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.
Tuvimos un problema similar y encontré una solución mejor que las expuestas aquí, así que la estoy compartiendo ahora:
Para confirmaciones hechas a mano , ahora TortoiseSVN corrige automáticamente el caso de los nombres de los archivos: renombra los archivos locales para que coincidan con el caso de los archivos versionados (simplemente abriendo la ventana de confirmación en esa ruta), por lo que no debería haber ningún problema .
Para confirmaciones automáticas no puede usar TortoiseSVN, ya que requiere que confirme manualmente la confirmación (abre la ventana de confirmación con un mensaje específico, pero aún debe hacer clic en Aceptar). Pero si usa Subversion (svn) directamente para realizar una confirmación automatizada, entonces tendrá el problema de mayúsculas y minúsculas en esa confirmación, ya que Subversion sigue teniendo en cuenta las mayúsculas y minúsculas ...
¿Cómo resolver esto para confirmaciones automatizadas? Bueno, probé un enfoque mixto: crear un archivo por lotes llamado FixCaseSensitiveFileNames.bat
que puede llamar pasando la ruta que desea corregir antes de la confirmación, por ejemplo: call FixCaseSensitiveFileNames.bat C:/MyRepo
. El archivo por lotes abre TortoiseSVN para una confirmación manual, y eso corrige automáticamente los nombres de los archivos, pero luego cierra la ventana de confirmación después de una pausa predefinida, por lo que puede continuar con la confirmación automática con los nombres de archivo que distinguen entre mayúsculas y minúsculas. La pausa se emula con un ping local, y puede cambiar la duración cambiando el argumento -n
, que es el número de intentos. Si no hace una pausa lo suficientemente larga, existe el riesgo de cerrar la ventana de TortoiseSVN antes de que haga su solución mágica. Aquí está el código del archivo por lotes :
@echo off
REM *** This BAT uses TortoiseSVN to fix the case-sensitive names of the files in Subversion
REM *** Call it before an automated commit. The Tortoise commit fixes this issue for manual commits,
REM *** so the trick is opening the commit window and close it automatically after a pause (with ping).
REM *** %1 = path to be fixed
start TortoiseProc.exe /command:commit /path:"%1"
ping localhost -n 10 >nul
taskkill /im TortoiseProc.exe
Esto resolvió totalmente el problema para nuestro proceso automatizado de compilación diaria. El único problema que veo es que se abrirá una ventana durante unos segundos, lo que no fue un problema para nuestra compilación diaria, pero si eso es un problema para usted, podría haber soluciones también ...
Utilizo TortoiseSVN con VFP y, en su mayoría, maneja sin problemas el volteo de la caja. 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 al final hay un par de diapositivas que tienen enlaces a herramientas que lo ayudan a trabajar con Subversion en VFP. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4
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 compatibilidad entre mayúsculas y minúsculas para la compatibilidad con versiones anteriores y la seguridad (principalmente cuando se trata de DOS executing notepad.exe vs. NOTEPAD.EXE, donde todo 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.