O Subversion permite renomear e mover ficheiro e pastas. Portanto, existem entradas para apagar e renomear no sub-menu do TortoiseSVN.
Para remover ficheiros ou pastas do Subversion usa
→ .Quando
Se queres remover um tem do repositório, mas mantê-lo localmente como um ficheiro/pasta não versionado, usa Shift enquanto clicas com o botão direito no item, no painel lista do explorador (painel direito), de modo a veres isto no menu de contexto estendido.
→ . Tens de manter premida a teclaIf an item is deleted via the explorer instead of using the TortoiseSVN context menu, the commit dialog shows those items as missing and lets you remove them from version control too before the commit. However, if you update your working copy, Subversion will spot the missing item and replace it with the latest version from the repository. If you need to delete a version-controlled file, always use
→ so that Subversion doesn't have to guess what you really want to do.Se removeste um ficheiro ou pasta e já submeteste essa operação de remoção para o repositório, então o normal
→ , não o pode mais recuperar. Mas o ficheiro ou pasta não está ainda totalmente perdido. Se conheceres a revisão em que o ficheiro ou pasta foi removido (se não sabes, usa a caixa de diálogo do registo para a encontrares), abre o navegador de repositório e comuta para essa revisão. Selecciona o ficheiro ou pasta que removeste, clica à direita e selecciona → , como destino dessa operação de cópia, selecciona o caminho para a tua cópia de trabalho.Se queres fazer um simples renomear no lugar de um ficheiro ou pasta, usa
→ Insere o novo nome para o item e está feito.Se pretendes mover ficheiros dentro da tua cópia de trabalho, talvez para uma subpasta diferente, usa o manípulo de arrastar-e-largar do botão direito do rato:
selecciona os ficheiros ou pastas que queres mover
Arrasta-os com o botão direito para a nova localização no interior da cópia de trabalho
Larga o botão direito do rato
No menu que surge selecciona
→Visto que renomeações e movimentos são executados como uma remoção seguida por uma adição, deverás submeter a pasta pai do ficheiro renomeado/movido para que a parte removida do renomeado/movido seja apresentado na caixa de diálogo submeter. Se não submeteres a parte removida do renomeado/movido irá ficar para trás no repositório, e quando os teus colegas actualizarem, o ficheiro antigo não será removido. i.e. eles terão ambos, o antigo e as novas cópias.
Tu deves submeter a pasta renomeada antes de alterar qualquer dos ficheiros dentro dessa pasta, senão a tua cópia de trabalho pode ficar realmente baralhada.
Outra maneira de mover ou copiar ficheiros, é usar os comandos de copiar/cortar do Windows. Selecciona os ficheiros que queres copiar, clica com o botão direito e escolhe a partir do menu de contexto do explorador
→ . Então navega para a pasta destino, clica com o botão direito e escolhe → . Para mover ficheiros, escolhe → em vez de → .Podes também usar o navegador de repositório para mover itens no mesmo. Consultar “O Navegador de Repositório” para saberes mais.
Não deverás usar os comandos TortoiseSVN Mover ou Renomear numa pasta que foi criada usando svn:externals
. Esta acção teria como causaria a remoção do item externo do seu repositório pai, provavelmente irritando muitas outras pessoas. Se necessitas de mover uma pasta de externos, deverás usar um vulgar mover de linha de comando (shell), e então ajustar as propriedades svn:externals
das pastas pai de origem e destino.
Se o repositório já contém dois ficheiros com o mesmo nome, diferindo apenas nas miúsculas e minúsculas (e.g. TEST.TXT
e test.txt
), não conseguirás actualizar ou SVN exportar a pasta pai num cliente Windows. Enquanto o Subversion suporta nomes de ficheiros sensíveis a miúsculas e minúsculas, o Windows não.
Isto por vezes acontece quando duas pessoas submetem, a partir de cópias de trabalho separadas, ficheiros que por acaso têm o mesmo nome mas com uma diferença de maiúsculas e minúsculas. Pode também acontecer quando os ficheiros são submetidos a partir de um sistema, com um sistema de ficheiros sensível a maiúsculas e minúsculas, como o Linux.
Nesse caso tens de decidir qual o que queres manter e remover (ou alterar o nome) do outro no repositório.
There is a server hook script available at: https://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.
Por vezes o teu IDE amigável irá renomear ficheiros por ti como parte de um processo de refactoração, e claro não irá avisar o Subversion. Se tentares submeter as tuas alterações, o Subversion irá ver o velho ficheiro como desaparecido e o novo como ficheiro não versionado. Poderias apenas adicionar o ficheiro ao controlo de versões, mas assim perderias a sua história, já que o Subversion não sabe que ambos os ficheiros estão relacionados.
Uma melhor maneira será, notificar o Subversion de que esta alteração é na realidade uma alteração de nome, e poderás faze-lo dentro das caixas de diálogo Submeter e Verificar alterações. Simplesmente selecciona ambos os ficheiros, o com nome antigo (em falta) e o com o novo nome (não versionado), e usa → para emparelhar os dois ficheiros como uma renomeação.
Normalmente tu configuras a tua lista de ignorados tal que todos os ficheiros gerados sejam ignorados pelo Subversion. Mas se queres limpar todos esse itens ignorados de modo a produzir uma versão limpa? Por norma tu inserias isso na tua makefile, mas se quiseres depurar a tua makefile ou alterar o sistema de build, será útil ter uma maneira de limpar a casa.
O TortoiseSVN disponibiliza tal opção usando Shift enquanto clicas com o botão direito na pasta, no painel de lista do explorador (painel direito) de modo a veres isto no menu de contexto estendido. Esta acção irá abrir uma caixa de diálogo que listará todos os ficheiros não versionados em qualquer ponto da tua cópia de trabalho. Podes então seleccionar ou desseleccionar os itens a remover.
→ . Tens de manter premida a teclaQuando tais itens são removidos é usando o cesto de reciclagem para que no caso de te enganares e removeres um ficheiro que deveria estar versionado, poderes ainda recuperá-lo.