2011-12-30 37 views
7

De alguna manera, debido a la redenominación de carpetas y varios otros cambios en el código fuente, estoy teniendo un problema irritante. Estoy mostrando un cambio pendiente para un archivo que no se puede deshacer en TFS.No se puede eliminar el cambio fantasma pendiente de TFS

Esto es un poco difícil de explicar por completo. Esto es lo que la estructura de directorios/archivos se ve como en TFS:

 
RootFolder 
    Folder 
     FileA 
     FileB 
    OldFolderThatWasRenamedToFolder (shows add icon) 
     FileA (shows "edit" pending change) 

"OldFolderThatWasRenamedToFolder" habían sido renombrado a "Carpeta" y se ha comprometido a TFS por el estilo. El "Archivo A" debajo de esa carpeta que no existe hace referencia al mismo archivo que "Carpeta/Archivo A", pero se registra como un archivo diferente; por ejemplo, si cambio "Carpeta/Archivo A", se muestran los cambios pendientes para ambos "archivos". Siempre que puedo deshacer los cambios pendientes para el archivo fantasma, TFS informa del error:

No pending changes were found for .../Folder/FileA.

no puedo deshacerme de este cambio pendiente falsa molesto. He hecho una actualización en la carpeta forzando una sobreescritura e incluso eliminé la carpeta antes de la actualización. ¿Cómo puedo eliminar este cambio fantasma pendiente?

Actualización:

He encontrado una pista potencial. Cuando comparo el archivo "pendiente" con el más reciente, no se detectan cambios, pero cuando se compara con la "Versión del área de trabajo", el archivo se compara con una versión anterior del archivo. Recientemente intenté eliminar mi espacio de trabajo y crear uno nuevo, pero el mismo problema persiste. ¿Qué está pasando exactamente? ¿Dónde están almacenados estos cambios pendientes? ¿Hay algún archivo que pueda editar manualmente?

Respuesta

2

Descubrí una forma de arreglar esto usando la línea de comando tf.exe. Al ingresar esto:

tf undo /workspace:MyWorkspace $/.../RootFolder/OldFolderThatWasRenamedToFolder/FileA 

... Pude deshacer el cambio pendiente. Si alguien sabe cómo hacer lo mismo sin recurriendo a la línea de comandos, aceptaré su respuesta.

+6

Me pareció mucho más fácil simplemente abrir la consola de desarrollador, cd al directorio de mi sucursal, y ejecutar: 'tf undo */recursive'. –

+0

Este comando me ayudó. En mi caso, necesitaba cerrar Visual Studio porque, de lo contrario, el archivo se marcaría inmediatamente como editado de nuevo. – Jeff

4

Debería poder deshacer el cambio pendiente con una herramienta de terceros llamada TFS Sidekicks. Es un conjunto gratuito de utilidades de Attrice. Lo uso especialmente cuando I (o un cliente) se encuentran con tales problemas, así como con los problemas de permisos y cosas por el estilo.

Además, la herramienta permitirá que un administrador haga lo mismo para otros usuarios de. Eso significa que resolverá situaciones en las que el código se marca como desprotegido por un usuario que puede que ya no exista en el sistema.

descargarlo en http://www.attrice.info/cm/tfs/index.htm

Espero que esto ayude.

+0

Gracias por el enlace. – Jacob

+0

Cool. ¡Úselo con buena salud! :) –

-4

estoy todavía nuevo en VS2010, pero así es como me fijo este problema para mí:

Ir al control de origen en el panel de Team Explorer. En Source Control Explorer, haga clic con el botón derecho en el archivo de directorio, proyecto o código fuente para el que hay cambios pendientes que se ignorarán. Seleccione Deshacer cambios pendientes. Aparece un cuadro de diálogo modal que confirma los Cambios pendientes que se desharán. Seleccione Deshacer cambios y ¡listo! No más cambios pendientes fantasmas.

7

En Visual Studio 2010, puede hacer clic con el botón derecho en el control de acceso fantasma pendiente en el panel "Cambios pendientes" y hacer clic en "Deshacer ..."en el menú emergente, luego haga clic en el botón" Deshacer cambios "en el cuadro de diálogo" Deshacer cambios pendientes ", el registro fantasma pendiente se eliminará de la lista.

+1

Me pregunto por qué esta no es la respuesta más aceptada y más votada. ¡Gracias por publicar! – Saturnix

+1

No aparece en la lista de cambios pendientes y la opción del menú deshacer está en gris porque no hay cambios reales, pero TFS todavía piensa que sí, que es el "error" en este caso. –

+0

Esto funcionó para mí cuando no pude deshacer el pago en el modo de cambios pendientes de AX – Chizzle

1

Sé que esta es una vieja pregunta, pero yo Acabo de enfrentar ese problema y no pude resolver esto con sidekicks o tf herramienta de línea de comandos. En mi caso, la solución fue cerrar la solución y eliminar el archivo .suo.

2

Sé que esta es una publicación anterior, pero Expliqué lo mismo.

Lo que encontré: la línea de comandos de John Kurlak funcionó para mí. Quería probar algo así que ejecuté TF MERGE de nuevo. Esta vez cerré todos los estudios visuales abiertos. y luego lo volvió a abrir. Los archivos aparecieron en Pending Changes y pudieron deshacerse desde allí.

0

El comentario de John Kurlak me ayudó mucho, pero permítame describir qué problema sucedió en mi caso y cómo lo resolví.

He intentado lo que ha sugerido:

abrir la consola del programador, hice un cd al directorio de mi rama, y ​​corrí:

tf undo * /recursive 

A continuación, selecciona "All" cuando el herramienta preguntó "Deshacer sus cambios ...? (Sí/No/Todos)".

En mi caso, eso no fue suficiente, porque NUGET dejó algunos archivos que no se agregaron a TFS. Que causó la herramienta tf para abortar con el error:

TF400024: The change on C:(SomePath)\themes\base\images\ui-icons_cd0a0a_256x240.png cannot be undone because a file already exists at C:(SomePath)\themes\base\images\ui-icons_cd0a0a_256x240.png. The file must be deleted from disk for the undo to succeed.

En este caso, he tenido que eliminar estos archivos mencionados de forma manual, y luego vuelva a intentar hasta que tuvo éxito. Eso tuvo que hacerse algunas veces.

Nota: Esos archivos se pueden encontrar más fácil en el explorador de archivos si ha instalado las herramientas eléctricas TFS, ya que los archivos que pertenecen a TFS tienen un triángulo verde en sus iconos, los otros filies (los que necesita para eliminar) no.

+0

¿Alguna vez encontró una solución a este problema? –

+0

Desafortunadamente no.Nuget actualiza paquetes, pero no lo hace bien, a veces ayuda a verificar todo antes de permitir que Nuget actualice los paquetes, pero a veces no (especialmente si la actualización falla). Es aconsejable dejar que Nuget solo actualice un paquete a la vez, probarlo, verificarlo si es exitoso o deshacer si no lo hace. La actualización de varios paquetes no es una buena idea porque puede dejar mucho desorden en los directorios que TFS no puede manejar después. – Matt

0

Tuve un problema similar con un proyecto que está atascado en el control de versiones AX/objetos pendientes con la acción "Agregar". No pude deshacerme de él haciendo clic en "Deshacer extracción" porque ya no existe en proyectos de AX, repositorio local ni en VSTS. Para deshacerme de él, creé el proyecto en AX/projects/shared y luego pude deshacerme de él accediendo al control de versiones AX/objetos pendientes y haciendo clic en "Deshacer extracción". Creo que esto ocurre cuando creas un objeto en AX, lo agregas al control de versiones y luego cambias el nombre del objeto. Espero que esto ayude.

Cuestiones relacionadas