Haga que los desarrolladores obtengan (obtengan los últimos cambios) antes de comprometerse

¿Hay alguna opción en TFS para que los desarrolladores obtengan los últimos cambios antes de comprometerse?

Tengo pocos desarrolladores que son reacios a actualizar (y comtestingn que su cambio realmente funcione con la versión actual), pero solo comprometan. Muy a menudo rompiendo la construcción de esta manera.

Obtuvimos CI cada 15 minutos, pero esto se trata de que cada desarrollador use los cambios de otros antes.
Tenga en count que estamos considerando cambiar a git solo por esta razón.

Puede configurar su compilation para que sea una verdadera compilation de CI, aunque no evitará que las personas se registren antes de recibir la última. Debería detectar quién rompió qué construcción. Algunas personas incluso configurarán una compilation Gated para que ni siquiera se registren sin una compilation aprobada. Personalmente no me gusta esto, ya que ralentiza la integración, a menudo considerablemente.

Para detectar el caso que desea capturar, puede implementar una Política de logging personalizado, registrarla con TFS e instalarla en todas las instalaciones de Visual Studio y Team Explorer Everywhere en su organización. Crear una política es bastante sencillo:

Y tendrá que comstackr ambos, ya que la configuration de las políticas de logging ocurre a través de Visual Studio y requiere la implementación de C #. Básicamente, debe consultar la versión del espacio de trabajo local y compararla con la última versión del espacio de trabajo en el server. Ámbito opcional solo para los files modificados. Luego, su desarrollador debe get la última versión, rebuild, volver a ejecutar todas las testings de la unidad e intentar verificar nuevamente. Esto puede causar otra colisión.

He escrito más orientación sobre este tema en una pregunta previa muy similar. Sospecho que su problema es peor que un simple control en las herramientas, es una cuestión de personas donde a las personas no les importa lo que otros están haciendo y donde no se están comunicando lo suficiente para prevenir este tipo de conflictos.

Ver también: evitar la sobrescritura accidental entre diferentes desarrolladores al registrarse o fusionarse

Esto podría depender de algunas cosas, pero lo más relevante podría ser la configuration del espacio de trabajo (local o server). Por ejemplo, el espacio de trabajo del server le brinda la opción de aplicar el último get.

Cuando usa el espacio de trabajo del server, puede configurar el control de la versión de Team Foundation para get la última versión de un file cuando lo verifique. Cuando esta opción está habilitada, el comportamiento de salida es como Visual SourceSafe . Para get más información, consulte este enlace: Habilite Team Foundation Version Control para get los últimos files en Check-Out

Si tiene que trabajar con workpsace local, entonces tal como lo sugirió Jessehouwing , la mejor manera es usar una política de logging personalizada . Acerca de cómo hacerlo, consulte este blog: Cómo crear la política de facturación personalizada de TFS

En general, usamos construcciones con compuertas, por lo que los cambios solo se verifican si se comstack, FxCop está contento y la testing de unidad es verde. Hemos intentado durante muchos años con la testing y el análisis desencadenados por CI, pero los aprendizajes han sido que la confianza es buena, pero que las puertas son mejores .

Sin embargo, esto requiere que el time de compilation y validation sea bastante corto, para que la integración no se ralentice.