Tecnologia -> Windows 8 -> Start Menu -> How To Enable The Original Start Menu In Windows 8 / Disable Metro UI


http://www.youtube.com/watch?v=0CAuvlmPbJE&feature=related

The Windows 8 Dev Build is great, but the Metro UI has more than a few quirks. If you want to run IE 10, and still have a Start Menu, (or be able to find your programs after you install them) then you need to make this small change to the registry.

WIN+R and then type REGEDIT and press enter.
browse to 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
select RPEnabled and change the value from 1 to Zero

You can still toggle between the two by using the windows key.

Tecnologia -> CLOUD -> BOX FREE -> Mapeando Unidade de Rede Com BOX FREE no Windows


box.net Online Drive Installation Guide

With box.net you can map your online storage space to a local drive using the so called WebDAV protocol. The following describes how you do that.

Preparation

If you have Internet Explorer 8 or later installed then you should first verify that a special setting in your internet options is disabled. Otherwise your online drive will be very very slow!
  1. Open the Microsoft Internet Explorer.
  2. Click on the "Tools" button in the upper right corner of the window. If it is not there then you probably do not have Internet Explorer 8 and can skip the following steps.
  3. Choose "Internet Options" from the menu that pops up.
    Internet Explorer 8 tools menu
  4. Click on the "Connections" tab at the top.
  5. Click on the "LAN Settings" button at the bottom.
    Internet Explorer 8 options
  6. A new window opens up. Verify that the box next to "Automatically detect settings" is not checked. If it is then uncheck it.
    Internet Explorer 8 LAN settings
  7. Close each of the two settings windows by clicking on OK.

Installing the online drive

After you have made the necessary changes in Internet Explorer (see above) you can proceed to install the drive. The steps are a little different depending on which Windows version you are using.

Windows 7 and Windows Vista

  1. If you have not yet done so: Create a box.net account
  2. Click on the button with the Windows logo in the lower left corner of your screen.
  3. Choose "Computer" from the menu. A Windows Explorer window will then open.
    Windows 7 - Open Windows Explorer
  4. Find the item "Computer" in the list on the left side of the window. Right-click on it.
  5. Choose "Map a network drive"
    Windows 7 - Open map network drive
  6. A new window opens where you can enter the settings for your drive.
  7. Enter "http://www.box.net/dav/" in the "Folder" field.
  8. Check the "Connect using different credentials" box
    Windows 7 - Map network drive settings - box.net
  9. Click on "Finish"
  10. Windows will now try to connect the drive. It will ask you for your login information. Enter your email address (the one that you used for your box.net account) in the first field and your box.net password in the second field. Then click on OK.
  11. If Windows keeps asking for the user name and password then something is wrong. Please ensure that you have entered the email address and password correctly. If it still does not work then please contact the box.net support.

Windows XP

  1. If you have not yet done so: Create a box.net account
  2. Click on the Start button in the lower left corner of your screen.
  3. Choose "My Computer" from the menu. A Windows Explorer window will then open.
    Windows XP - Open Windows Explorer
  4. Click on "Tools" in the menu bar and select "Map network drive" from the menu that pops up.
    Windows XP - Open map network drive
  5. A new window opens where you can enter the settings for your drive.
  6. Enter "http://www.box.net/dav/" in the "Folder" field.
  7. Click on the "Connect using a different user name" link
    Windows XP - Map network drive settings - box.net
  8. Windows will now ask you for your login information. Enter your email address (the one that you used for your box.net account) in the first field and your box.net password in the second field. Then click on OK.
  9. Click on "Finish"
  10. Windows will now try to connect the drive. It may take a few seconds for this to complete and Windows will not give any indication that it is working. Please be patient. Once the drive is connected a Windows Explorer window will automatically open, displaying the contents of the drive.

Tecnologia -> Google -> Orkut -> Excluir meu perfil do Orkut


Excluir meu perfil do Orkut

Você tem certeza de que quer apagar a sua conta do Orkut? Isso é importante, pois a exclusão do seu perfil não pode ser desfeita.
Se tiver certeza absoluta, siga os passos abaixo para excluir permanentemente o seu perfil do Orkut:
  1. Clique em configurações ou, se tiver conectado o seu perfil, clique no ícone de engrenagem  no canto superior direito e depois clique em Configurações.
  2. Na guia Gerais, clique em Excluir minha conta do Orkut.
  3. Você será levado para a página "Excluir Orkut", dentro da sua Conta do Google.
  4. Marque a caixa confirmando que você realmente quer excluir permanentemente o seu perfil do Orkut da sua Conta do Google.
  5. Digite a sua senha e clique em Remover Orkut. O seu perfil do Orkut será excluído, mas a sua Conta do Google permanecerá ativa.
Feito isso, o seu perfil desaparecerá da face da Terra e não será possível recuperá-lo nem restaurar qualquer informação desse perfil excluído.
Além disso, lembre-se de que todas as comunidades que pertenciam a você não serão excluídas quando você remover o seu perfil. Se você também quiser excluir as suas comunidades, faça isso antes de excluir o seu perfil. Como alternativa, você também pode transferir a propriedade da sua comunidade para um outro membro de sua confiança. Caso contrário, outro membro poderá se tornar o moderador de uma comunidade sem proprietário.

Tecnologia -> Mobile -> iPhone -> Mensagem com iPhone Bloqueado


Faça com que suas mensagens recebidas não sejam expostas com o iPhone bloqueado


Por uma medida de praticidade, quando você recebe mensagens pelo iPhone, elas aparecem na tela bloqueada, para rápida leitura. O problema é que isso também pode ser arriscado para aprivacidade, caso outras pessoas estejam perto do aparelho no momento que a mensagem chega.
Felizmente, há uma maneira fácil no sistema de esconder de olhares bisbilhoteiros as mensagens que chegam.
Veja como configurar o sistema para que as mensagens não sejam expostas na tela de início, cujo procedimento mudou com o iOS 5:
Vá em Ajustes > Notificações > Mensagens e desabilite a opção ‘Pré-visualização‘.
Pronto, simples assim. A partir deste momento, toda a mensagem que você receber não ficará mais exposta na notificação, sendo lida apenas quando você abrir o aplicativo Mensagens.
E isso vale também para os banners de notificação, que aparecem no topo da tela. Eles só informarão o aplicativo que possui uma mensagem, não revelando o seu conteúdo. :)
Se você, por alguma razão, usa uma versão do sistema anterior ao iOS 5, confira como fazer a mesma coisa no modo antigo.

Tecnologia -> iPad / iPhone -> TV Digital no iPad / iPhone


TV Digital ao iPad


QUER ASSISTIR TV DIGITAL NO IPAD, IPHONE OU IPOD TOUCH? SIM AGORA É POSSÍVEL, DESCUBRA COMO!

Quer assistir TV Digital no iPad, iPhone ou iPod Touch? Sim agora é possível, descubra como!
COMPARTILHE NAS REDES SOCIAIS
Olá amigos do iPadDicas.com, a pedido da colega Monica Lee da Techronix, hoje vamos dar a conhecer um acessório muito interessante que promete levartelevisão digital para dentro de seu iPad, iPhone e iPod Touch.
Uma das críticas que o iPad recebe quando é comparado com seus concorrentes é justamente a falta de um sintonizador integrado de TV, eis que com este acessório dito problema estará totalmente solucionado.

É muito bacana pois você não precisa da internet para utilizar, você tem acesso a todos os canais digitais abertos seja lá onde você estiver. O acessório se chama TiVizen e está agradando os usuários de iPad, iPhone e iPod Touch do mundo todo.

A Solução para uma exigência do mercado

É um fato que os usuários de iPad, iPhone e iPod Touch desejam muito ter acesso à televisãoem seus dispositivos, prova disso foi a repercussão que teve nosso post que ensinava como sintonizar via internet vários canais brasileiros em seu iPad, tivemos muitos comentários e pessoas contentíssimas com o resultado, mas, o aplicativo foi mais tarde retirado da App Store por violação de direitos autorias.
Bom, graças ao acessório que vamos apresentar hoje você terá finalmente acesso aos canais de televisão digital aberta, desta vez, sem correr o risco de parar de funcionar pois o TiVizen sintoniza os canais abertos, os mesmos que você vê em sua televisão de casa!

Como Funciona?

O TiVizen é um acessório que possui a capacidade de levar ao iPad o sinal de TV digital aberta que estiver disponível em sua região, você simplesmente conecta o TiVizen na porta de conexão (dock) do iPad, iPhone ou iPod Touch, abre o aplicativo (gratuito) e pronto, nunca mais perde sua novela, futebol ou programa favorito.
Ele possui uma bateria recarregável, que dura aproximadamente 3 horas, tempo suficiente para que você não perca a programação enquanto estiver de viagem ou fora de casa. Pode ser carregado em tomada comum como também em qualquer porta USB que você tiver disponível (em seu notebook, por exemplo).
Adicionalmente você pode carregar o TiVizen enquanto assiste TV no iPad, iPhone ou iPod Touch, de forma que mesmo se o tempo de espera for grande (exemplo: aeroporto) você não ficará sem diversão nem perderá o final de seu filme!

Grade de Programação

O aplicativo grátis que você vai baixar para utilizar em conjunto do TiVizen pesa somente 7MB mas é bastante completo, além de sintonizar os canais ele ainda lhe brinda toda a informação disponível, podendo percorrer a grade de programação e se agendar para não perder nenhum programa.

Onde Comprar?

TiVizen pode ser adquirido via Internet no site da Starprime, ele custa somente R$178,00 e ainda pode ser pago em até 12x. O que está esperando?

Considerações Finais

Bom amigos, no dia de hoje trouxemos um acessório extremamente útil para você que gosta de ver televisão mesmo quando está fora de casa, já seja no carro, aeroporto, durante o almoço, ou onde você quiser. O TiVizen é um produto muito funcional e que você vai adorar.
Debate:
  • Já conhecia? O que achou do TiVizen?
  • Você gostaria de assistir TV no iPad, iPhone ou iPod Touch?
Um abraço, até já.

Agradecimento

Agradeço o pessoal da Techronix por se interessar em anunciar no iPadDicas, atingindo uma audiência de mais de 500 mil leitores por mês.
Este foi um artigo patrocinado, se você possui um blog, site ou produto que considera ter qualidade egostaria de anunciá-lo à nossa audiência, convido que faça leitura de nossas condições de publicidade e adquira um artigo patrocinado.

Tecnologia -> JAILBREAK -> iPhone 3GS -> Como fazer o Jailbreak IOS 5.1.1


Como fazer o Jailbreak do seu iPhone 3GS usando o RedSn0w (Windows) [5.1.1]



Estas são intruções de como fazer o jailbreak do seu iPhone 3GS no firmware iOS 5.1.1 usando o RedSn0w para Windows. O tutorial para Mac tutorial está aqui.

Este procedimento fará você atualizar seu baseband potencialmente acabando com suas chances de desbloquear o iPhone. Por favor, siga este tutorial para atualizar o firmware sem atualizar seu baseband se você deseja desbloquear no futuro. O jailbreak é tethered para todos os aparelhos, exceto para os com iPhone 3GS com bootrom antigo, o que siginifica que você terá que conectá-lo ao computador todas as vezes que reiniciá-lo. Finalmente, seria prudente que você salvasse seu SHSH Blobs seguindo este tutorial antes de continuar.

Se você quer fazer o jailbreak de um firmware numa versão mais baixa, você pode achar o tutorial apropriadoaqui. Se você está com o iOS 5.1 e quer mantê-lo, você ainda pode usar estas instruções seguindo os mesmos passos do firmware iOS 5.1.

Passo Um
Crie uma pasta no seu desktop chamada Pwnage

Baixe a última versão do RedSn0w a partir daqui e coloque na pasta Pwnage. Da mesma forma, baixe o firmware 5.1.1 daqui e coloque na mesma pasta. (Nota: você não precisa baixar o firmware 5.1.1 se você já está nele)

Extraia o RedSn0w do arquivo zipado dando um duplo clique nele.


Passo Dois: (Pule este passo se você já estiver no iOS 5.1.1)
Conecte seu iPhone no computador e abra o iTunes.


Selecione seu iPhone da lista de dispositivos na esquerda. Agora segure o Shift e clique no botão Restaurar. Restaurar é melhor pois não vai criar espaços vazios no seu iPhone.


Navegue até a pasta Pwnage no seu desktop e selecione o ipsw do firmware 5.1.1. Clique no botão Choosepara continuar.


O iTunes irá agora atualizar o firmware do seu iPhone.

Passo Três
Abra o aplicativo redsn0w da pasta redsn0w clicando duas vezes e escolhendo Executar como administrador.




Passo Quatro
Uma vez aberto o RedSn0w, clique no botão Jailbreak


Passo Cinco
Conecte seu iPhone no computador tendo certeza que está DESLIGADO e clique no botão Next


Passo Seis
O RedSn0w irá guiá-lo pelos passos para entrar no modo DFU. Você pode encontrar mais ajuda sobre o modo DFU aqui


Segure os botões Home e Power simultaneamente por 10 segundos.


Solte o botão Power button e continue segurando o botão Home até que o RedSn0w detecte seu dispositivo.


Passo Sete
Seu iPhone irá reiniciar


Passo Oito
O RedSn0w irá preparar os dados do jailbreak.


Passo Nove
Selecione Cydia da lista de opções e clique Next.


Passo Dez
Seu iPhone irá reiniciar novamente e o RedSn0w irá começar a carregar os novos RAM Disk e Kernel.


Passo Onze
Uma vez completo, você será notificado que o RedSn0w está feito. Quando seu iPhone acabar de reiniciar (mais ou menos 5 minutos) ele já estará com o jailbreak e com o Cydia no SpringBoard.



BOOT TETHERED
Uma vez feito o jailbreak, você precisar rodar novamente o redsn0w para iniciá-lo tethered, se você estiver no novo bootrom.

Passo Um
No menu principal do RedSn0w clique no botão Extras.


Passo Dois
Selecione Just boot do menu Extras para apenas iniciar tethered.


Tecnologia -> Reposiórios -> SVN -> Utilização de Trunk, Branch e Tag no SVN

Utilização de Trunk, Branch e Tag no SVN


Trunk/Tronco
A pasta trunk é principal área de desenvolvimento.
Todas as atualizações efetuadas dia-a-dia são armazenadas na pasta trunk.
Geralmente contém os arquivos mais atuais do projeto, bem como as correções de bugs e os últimos recursos adicionados ao projeto.
Branch/Ramo
A pasta branch contém uma cópia de determinada revisão de trunk quando este estiver estável ou for necessário criar uma nova funcionalidade que posteriormente será mesclada devolta ao tronco ou até mesmo para criar outra linha de desenvolvimento intependente do tronco.
Tag
Normalmente utilizada para lançamentos de “releases”, a tag marca um ponto estável do desenvolvimento.
A seguir um exemplo de utilização
Um projeto inicia e um repositório é criado. Ex.: meuprojeto 1.0.
O projeto é desenvolvido na pasta trunk.
Quando chega a hora de liberar uma versão, a pasta trunk é copiada para a pasta branch e dado um nome de versão.
Este branch é congelado e não sofre mais alterações, apenas correções. Rigorosos testes são efetuados.
Quando os testes efetuados encima de um branch estão completos, a versão que se encontra no branch é copiada para a pasta tags, formando assim um “release” ou uma versão “liberada”. Ex.: meuprojeto 1.0.
O projeto continua em desenvolvimento em trunk até que chegue a hora de lançar uma nova versão. Ex.: meuprojeto 2.0.
Havendo mais algum bug na tag “meuprojeto 1.0″, será corrigido no branch correspondente e criada uma nova tag, evitando ter que liberar a versão mais nova – possivelmente inacabada ou não testada. Ex.: meuprojeto 1.1.
Qualquer modificação em branch, deve ser copiada para a pasta de tags, após todos os testes.
Branchs e tags em SVN são leves – no servidor, ele não faz uma cópia completa dos arquivos, apenas um marcador dizendo “esses arquivos foram copiados nesta revisão”, que ocupa apenas alguns bytes. Com isto em mente, você nunca deve se preocupar sobre espaço ocupado.

Tecnologia -> Repositórios -> SVN -> Conceitos, boas práticas e dicas de utilização

SVN: conceitos, boas práticas e dicas de utilização

EM PROGRAMAÇÃO | 11/04/2010 03:20

Introdução

Subversion
Como grande apreciador e usuário há anos do SVN, não poderia deixar de dedicar um pequeno artigo sobre esta fantástica ferramenta de controle de versão, principalmente pela escassez de materais na Internet discutindo seus conceitos de forma pragmática.
Assim, resolvi aproveitar alguns materiais que eu havia escrito para utilização pelos times de desenvolvimento nos quais atuo, incrementei alguma coisinha aqui e acolá e preparei artigo.
Para facilitar a leitura, dividi o artigo em 7 partes:

Público alvo

O cerne deste artigo não é a discussão da utilização do SVN a partir de comandos ou questões técnicas da ferramenta. Para tal, há documentaçõeslivros e artigos na rede muito completos sobre o tema. O público alvo deste artigo são utilizadores do SVN que já tenham familiaridade com suas idiossincrasias e que desejam um melhor entendimento do modelo organizacional da ferramenta e de como estruturar um processo em torno do SVN para tornar mais eficaz o gerenciamento do código-fonte de suas aplicações.

Controle de versão e SVN

Controle de versão é a arte de gerenciar mudanças em informações. Para programadores, é um paradigma obrigatório a ser seguido para assegurar a saúde do código-fonte, ainda mais em grandes equipes atuando cada qual em partes distintas de um projeto.
Back to the FutureVocê, desenvolvedor, também precisa de uma
máquina do tempo para seu código.
Subversion, ou simplesmente SVN, é uma ferramenta de controle de versão muito poderosa que permite, além do desenvolvimento colaborativo a partir de um repositório único, merge de conteúdo, armazenamento de logs e geração de estatísticas diversas.
Atuando como a máquina do tempo do desenvolvedor, ferramentas com o SVN permitem retornar o código a um estado anterior, facilitando a análise implementações realizadas e a mesclagem de implementações distintas de períodos diferentes para a criação de uma única versão.
(Embora eu seja fãzaço e ávido partidário do SVN, tenho flertado nos últimos tempos com os ótimosMercurial e GIT, os quais têm realmente me surpreendido e me feito repensar o uso do meu amado idolatrado salve salve SVN. Todavia, isso fica para outro artigo...)

Termos e conceitos básicos

TortoiseSVN Menu
Repositório
É o local aonde estão contidos todos os arquivos do projeto. É armazenado no banco de dados do SVN.
Working Copy
Literalmente, uma cópia de trabalho local na qual o desenvolvedor atua. É criada sempre que é feito checkout de algum projeto.
Checkout
Ato de fazer download de um projeto para a máquina local, de modo que seus arquivos estejam vinculados ao SVN e passíveis de manipulação. O projeto para o qual será feito o checkout deve existir no repositório.
Import
Ato de envio dos arquivos de um novo projeto para o repositório. Após o import, obrigatoriamente um checkout deve ser realizado para que a working copy seja vinculada ao SVN.
Export
Ato de obtenção de um projeto do repositório sem vinculação ao SVN.
Commit
Ato de envio das modificações realizadas localmente para o servidor SVN.
Update
Ato de obtenção das atualizações presentes do servidor SVN, atualizando a cópia local
Revision
Número que identifica cada uma das alterações ou conjunto de alterações realizadas em um repositório. Tal número é obtido a partir de uma sequência a qual é compartilhada por todos os diretórios do repositório.
HEAD
É a revisão mais recente do repositório
Diretórios especiais
Existem no SVN três diretórios especiais com funções bem definidas:
  • trunk: armazena a versão funcional mais recente de desenvolvimento.
  • branches: armazena versões de desenvolvimento paralelo oriundas do trunk, porém isoladas deste. Deve ser utilizado quando uma implementação trazer o risco de afetar a integridade do trunk.
  • tags: armazena etiquetas para facilitar a localização de revisões. Cada etiqueta possui um nome único que a identifica, sendo criada como um diretório, sempre através do trunk.
Branch/Tag
Refere-se à geração de branches ou tags a partir de um trunk ou geração de um branch a partir de uma tag ou outro branch.
Merge
Refere-se à mesclagem de revisões entre os diretórios especiais. Sempre deve ser realizada com a working copy apontando para o destino do merge.
Switch
Alteração do repositório utilizado por uma working copy. É realizada uma atualização ou mesclagem dos arquivos para assegurar que a working copy contenha exatamente o conteúdo do novo repositório mais quaisquer alterações locais.
Relocate
Realocação do endereço de um repositório. Apenas atualiza o endereço, sem realizar nenhum tipo de atualização nos arquivos.

Boas práticas

  • Toda revisão deve ser comentada para facilitar o entendimento das alterações realizadas.
  • O código no trunk deve sempre estar pronto para ser compilado e colocado em produção se necessário. Nesse sentido, uma ferramenta de Integração Contínua, como o CruiseControl, deve ser utilizada para a geração de builds de teste a cada commit e todas as noites ao longo da semana.
  • É dever de cada programador assegurar que seus commits não causem a quebra do build. Novamente uma ferramenta de Integração Contínua pode auxiliar nesta tarefa.
  • As alterações em um código-fonte devem ser submetidas ao repositório o mais rápido possível. Para tal, é recomendável a divisão das implementações em pequenos pacotes compiláveis e funcionais ou, ao menos, que não causem a quebra do build. Quanto mais tempo um arquivo mantém-se na máquina de um desenvolvedor em edição, mais difícil será sua mesclagem e maior será o risco de quebra de build.
  • Toda a quebra de build deve ser tratada com máxima prioridade no sentido de sua correção. Mais uma vez uma ferramenta de Integração Contínua pode auxiliar nesta tarefa.
  • Caso um build esteja quebrado, não se deve submeter alterações ao repositório até que o build seja novamente compilável. Isso assegura que todos os que realizarem updates terão sempre uma versão compilável e funcional oriunda do repositório.
  • O projeto no repositório deve conter quaisquer componentes e ferramentas necessárias para o funcionamento da aplicação na máquina do desenvolvedor.
  • Evitar o envio de alterações próximo do fim do expediente. Caso haja algum problema com o commit realizado, poderá não haver tempo para corrigi-lo naquele dia e o build poderá ficar quebrado por um longo período.
  • Todo e qualquer backup de versões deve ser mantido no repositório, preferencialmente como uma tag.

Dicas de utilização

Uso do trunk

O trunk sempre representa a última versão de desenvolvimento disponível. Nesse sentido, é aqui que ocorre a integração do projeto a partir de builds automatizados e é aqui que a versão funcional mais recente deve estar presente.
É do trunk também que os branches e tags devem ser gerados (embora branches possam ser gerados de tags e outros branches sem restrições técnicas). A ferramenta de revisão gráfica do TortoiseSVN(Revision Graph) permite visualizar os relacionamentos entre as pastas especiais a partir de diagramas.

Fluxo básico de atividades

O fluxo básico de atividades no repositório consiste na utilização do trunk como ponto principal de checkout para o desenvolvimento. Entretanto, quaisquer tarefas que possam causar grande impacto no trunk devem ser realizadas em um branch separado, o qual receberá as alterações do trunk ao longo do dia ou ao fim do dia para que este seja mantido atualizado.
Tags são utilizadas como backups e marcação de releases diversos do projeto.
Segue abaixo explanação da utilização do fluxo:
Diagrama do fluxo
  • Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag (opcional);
  • Criação de branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;
  • Integração de alterações realizadas no trunk ao branch a partir da ferramenta de mesclagemMerge a Range of Revisions;
  • Criação de nova branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;
  • Conclusão do primeiro branch criado, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;
  • Atualização da segunda branch criada com as atualizações recém realizadas no trunk a partir da ferramenta de mesclagem Merge a Range of Revisions;
  • Conclusão da segunda branch criada, ocorrendo a reintegração desta no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;
  • Geração de etiqueta de release da versão do trunk a partir da opção Branch/Tag.

Fluxo básico de atuação em projeto fechado

Quando em atuação em projetos fechados de customização a um cliente, tem-se comumente uma única versão da aplicação em produção, além de outras em ambientes diversos, como por exemplo homologação e testes.
Neste caso, o fluxo básico de atividades também é utilizado. Entretanto, a cada release gerado, além da tag é criado um branch que representa a versão criada. Assim, tem-se no trunk a última versão de desenvolvimento e, em branches separados, cada uma das versões implantadas em ambientes diversos.
Dessa forma, pode-se prestar manutenção às versões presentes em cada um dos ambientes da aplicação de forma simples. Toda vez que uma nova versão de um determinado ambiente é gerado, o branch anterior para tal ambiente é excluído.
Neste fluxo, sempre se espera que todas as revisões do trunk anteriores ao release façam parte deste, não havendo seleção de revisões na concepção de releases.
Segue abaixo explanação da utilização do fluxo:
Diagrama do fluxo
  • Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag/ (opcional);
  • Criação de branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag;
  • Integração de alterações realizadas no trunk ao branch a partir da ferramenta de mesclagemMerge a Range of Revisions;
  • Conclusão do primeiro branch criada, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;
  • Geração de etiqueta de release da versão do trunk a partir da opção Branch/Tag;
  • Criação de branch para o release recém gerado a partir da opção Branch/Tag;
  • Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch se manterá ativo enquanto a versão que o representa estiver em utilização.

Fluxo de atuação em projeto fechado com mesclagem de revisões

A exemplo do Fluxo básico de atuação em projeto fechado, neste fluxo também se considera que há apenas uma única versão da aplicação em produção, além de outras em ambientes diversos, como por exemplo homologação e testes.
Nesta técnica, o fluxo básico de atividades também é utilizado. Entretanto, a cada release gerado, é criado primeiramente um branch baseado em uma tag anterior de ambiente, no qual ocorre mesclagem de revisões do trunk, para que somente após o commit de tal branch seja criada uma nova tag de release que aponte para tal branch (o qual, por sua vez, aponta para o trunk).
Assim, tem-se no trunk a última versão de desenvolvimento e, em branches separados, cada uma das versões implantadas em ambientes diversos, sendo que tais versões, embora venham do trunk, são geradas sempre a partir de tags de versões ante
rios, mantendo dessa forma a seleção de revisões realizada.
Dessa forma, pode-se prestar manutenção às versões presentes em cada um dos ambientes da aplicação de forma simples, além da geração de releases baseados em determinadas revisões do trunk.
Toda vez que uma nova versão de um determinado ambiente é gerado, o branch anterior para tal ambiente é excluído.
Segue abaixo explanação da utilização do fluxo:
Diagrama do fluxo
  • Considerando-se importação inicial do repositório, deve-se inicialmente criar-se uma tag de release para algum dos ambientes, a qual servirá de base para geração do branch do ambiente com o qual a tag se relaciona a partir da opção Branch/Tag;
  • Criação de branch para a tag do release recém criado a partir da opção Branch/Tag. Tal branch se mantém ativo enquanto a versão que o representa estiver em utilização.
  • Criação de feature branch para realização de nova implementação que pode impactar no trunk a partir da opção Branch/Tag. O uso desse tipo de branch deve ser avaliado com cautela. O trunk deve sempre ser a versão mais recente de desenvolvimento;
  • Integração de alterações realizadas no trunk ao feature branch a partir da ferramenta de mesclagem Merge a Range of Revisions;
  • Conclusão do feature branch criado, ocorrendo a reintegração deste no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e sua deleção;
  • Reintegração de correções de bugs realizadas no branch do release atual de algum dos ambientes ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch;
  • Exclusão do branch de algum dos ambientes por conta de nova versão a ser criada para tal ambiente;
  • Criação de nova branch para o ambiente a ter a nova versão disponibilizada a partir da tag do último release do ambiente desejado utilizando-se da opção Branch/Tag;
  • Mesclagem de revisões do trunk na nova branch de release a partir da ferramenta de mesclagemMerge a Range of Revisions e posterior commit destas alterações na própria branch;
  • Geração de etiqueta de release da versão criada a partir do novo branch utilizando-se da opçãoBranch/Tag;
  • Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch se manterá ativo enquanto a versão que o representa estiver em utilização.

Fluxo de atuação em projeto fechado com múltiplos branches

Tal fluxo é uma derivação do Fluxo básico de atuação em projeto fechado. Diferente daquele, neste todas as alterações sempre são realizadas em branches que posteriormente são reintegrados ao trunk. Quaisquer versões a serem geradas (produção, homologação, teste, etc.) são criadas a partir de merge de revisões a partir do trunk sobre o próprio trunk ou de branches sobre o trunk, com posterior geração de novas branches e tag para tal versão.
Neste fluxo, o trunk é utilizado como a versão mais completa da aplicação, contendo todas as implementações já realizadas em branches separados.
O uso dos branches se dá para facilitar a divisão de tarefas e organização das alterações, de modo que solicitações descartadas sejam facilmente ignoradas e não reintegradas ao trunk.
Segue abaixo explanação da utilização do fluxo:
Diagrama do fluxo
  • Geração de backup da versão do trunk para marcação de um ponto de restauro rápido antes do início dos branches a partir da opção Branch/Tag (opcional);
  • Criação de branches para realização de novas implementaões a partir da opção Branch/Tag. Como o trunk possui todas as implementações já realizadas, tais branches devem ser criados com base em revisões específicas do trunk que contenham apenas as implementações desejadas;
  • Integração de alterações realizadas no trunk aos branches a partir da ferramenta de mesclagemMerge a Range of Revisions (opcional – diferente dos fluxos anteriores, a obtenção das últimas alterações pode não ser necessária, uma vez que um branch pode referir-se a uma revisão específica e não necessariamente à última versão presente no trunk);
  • Conclusão dos branches criados, ocorrendo a reintegração destes no trunk a partir da ferramenta de mesclagem Reintegrate a Branch e posterior deleção;
  • Geração de release a partir do trunk. Neste fluxo, a geração de release ocorre mesclando-se revisões do trunk em uma working copy de uma revisão específica (não necessariamente a mais recente) do próprio trunk ou dos branches. Assim, pode-se escolher exatamente quais revisões entrarão em uma release, assegurando pleno gerenciamento da montagem de uma versão. A criação do branch é feita a partir da opção Branch/Tag;
  • Geração de etiqueta de release a partir do branch recém gerado através da opção Branch/Tag;
  • Mesclagem das alterações realizadas no branch do release ao trunk a partir da ferramenta de mesclagem Reintegrate a Branch. Tal branch sempre estará disponível, não sendo excluído do repositório.

Ferramentas de apoio

TortoiseSVN
  • Apache Subversion: versão oficial do Subversion.
  • VisualSVN Server: implementação em Windows prática e fácil de instalar do servidor SVN oficial. Possui ambiente gráfico de gerenciamento e permite visualização do conteúdo dos repositórios diretamente pelo navegador.
  • TortoiseSVN: a melhor ferramenta gráfica para utilização do SVN em ambiente Windows.
  • RabbitVCS: embora o pessoal de Linux é acostumado a digitar centenas de comandos diariamente em suas distribuições, esta ferramenta gráfica para utilização do SVN em Linux inspirada no grande TortoiseSVN torna mais prático o gerenciamento do projeto diretamente no Nautilus.
  • Commit Monitor: permite o recebimento de alertas a cada commit realizado nos repositórios SVN.
  • CruiseControl e CruiseControl.NET: ótimas ferramentas de Integração Contínua. Esta completa entrada na Wikipedia é uma excelente referência de ferramentas de Integração Contínua.

Ao infinito e além

Caso tenha alguma dúvida, curiosidade, trauma ou angústia sobre o artigo, ou apenas deseja elogiá-lo, utilize o espaço de comentários mais abaixo para entrar em contato.
Seguem abaixo alguns links interessantes:

Tecnologia -> Repósitorios -> SVN -> Tutorial Subversion

Tutorial Subversion

Após sofrer um pouco com a utilização do subversion, fiz este tutorial para facilitar minha vida e para ajudar também alguém que possa precisar.
Para este tutorial levamos em consideração que o subversion já está instalado e configurado no servidor. A partir daí seguem alguns comandos básicos (executados no terminal) para efetuar a criação e utilização de repositórios do subversion no linux.
No subversion, não existe a revisão de um determinado arquivo. Os arquivos não tem versões independentes. Todos os arquivos são parte de uma mesma revisão, e a modificação de um único arquivo altera a revisão de todos.
O subversion é um sistema de controle de versões que utiliza o conceito de branches, tags trunk. Abaixo seguem alguns conceitos para melhor compreensão:

Trunk

A pasta trunk contém os projetos que estão em desenvolvimento. Todas as atualizações efetuadas dia-a-dia são armazenadas na pasta trunk.

Branches

A pasta branches é aquela que contém “linhas de desenvolvimento” de tal projeto, que entre elas podem haver poucas diferenças, porém uma independe da outra.
Quando a equipe decide que o projeto está pronto para ser liberado como uma versão, a pasta trunk é copiada para a pasta branch e dado um nome de versão. Este branch é congelado e não sofre mais alterações, apenas correções. Rigorosos testes são efetuados.

Tags

Quando os testes efetuados encima de um branch estão completos, a versão que se encontra no branch é copiada para a pasta tags, formando assim um “release” ou uma versão “liberada”. Esta pasta tag é empacotada e enviada para o cliente. Qualquer modificação em branch,deve ser copiada para a pasta de tags, após todos os testes.
Svn considera tag apenas uma variação de um branch, e na prática é exatamente como um branch, apenas uma cópia da ramificação atual da árvore.


svnadmin

Uma ferramenta para criar, ajustar ou reparar um repositório Subversion.

Criando um repositório

svnadmin create
ou
svnadmin create /

*Para alterar alguma coisa no repositório é necessário, após a criação, baixar uma cópia de trabalho, através do comando “checkout”, alterar e usar o comando “commit” para enviar alterações.


svnserve

Um programa servidor independente, que roda como um processo daemon ou pode ser invocado via SSH. É um modo de tornar o repositório disponível na rede.

Tornando o repositório disponível na rede através do protocolo svn

svnserve -d -r

Desta forma, pode-se acessar o repositório de outras máquinas, através do ip ou hostname.
svn ls svn://

svn

O programa cliente para linha de comando.
Comandos para as funcionalidades do controle de versão (checkout, commit, update, etc.)

*Cada comando possui subcomandos para ações específicas.

Importando arquivo ou conteúdo de diretório para o repositório


svn import svn:// -m
ou
svn import  file:/// -m  *É necessario o uso de um protocolo (svn, file, etc.), pois o svn só trabalha com url’s.

*Ao importar um diretório, para usar o conceito de branch, tag e trunk,é necessário que se importe uma pasta à qual contém o projeto a ser armazenado no repositório contendo as pastas branch e tag (ambas vazias) e trunk (com os arquivos do projeto).


Adicionando arquivos ou diretórios

svn add

*Os arquivos serão adicionados ao repositório no próximo commit.

Removendo arquivos do repositório

svn rm
svn commit *Exclui da cópia local e dá um commit para o repositório

ou
svn rm *Para excluir diretamente do repositório


Listar todos os repositórios disponíveis no servidor srvbuild.


svn ls
ou
svn list

Há também outra forma de listar o conteúdo do repositório, passando diretamente o caminho onde ele se encontra no disco.

svn ls file:///

Outros parâmetros podem ser passados, como formas diferentes de listar o conteúdo do repositório.

svn ls –recursive *Desce recursivamente aos conteúdos de cada diretório
svn ls –verbose *Lista informações adicionais

Baixar uma cópia dos arquivos disponíveis no repositório


svn co
ou
svn checkout

Adicionalmente podem ser passados alguns parâmetros para baixar revisões específicas.

svn co svn:/// -r
ou
svn co file:/// -r  *Neste caso para acessar diretamente o local onde se encontra o repositório

Visualizar informações referentes à uma cópia de trabalho ou item remoto


svn info
ou
svn info


Atualizar uma cópia local com a disponível no repositório


svn update *Se estiver na pasta local de trabalho
ou
svn update

Listar modificações feitas na cópia de trabalho.

svn diff *Se estiver na pasta local de trabalho
ou
svn diff
svn diff lista as linhas dos arquivos que sofreram modificações daquelas que estão no repositório.

Listar os arquivos modificados na cópia de trabalho

svn status *Se estiver na pasta local de trabalho
ou
svn status
svn status lista os arquivos que sofreram modificações daqueles que estão no repositório.

Enviar as alterações efetuadas na cópia local para o repositório.


svn commit -m *Se estiver na pasta à qual possui os arquivos locais do repositório
ou
svn commit -m *A frase é o relato das alterações que estão sendo postadas


Liberar uma “release” para o repositório

Após efetuar todos os testes encima do projeto em desenvolvimento o mesmo deve ser disponibilizado como uma cópia estável para a pastabranches do projeto que está sendo desenvolvido. Para isso, é necessário fazer um checkout da ultima versão do projeto no repositório e simplesmente copiar a pasta trunk para dentro da pasta branches.

Trabalhando com a cópia local:
svn checkout /
    cd
svn copy trunk branches/ *Copiando a pasta trunk para a pasta branches
svn status *Para listar os arquivos que sofreram modificações.
svn commit *Somente agora as alterações vão para o repositório

Trabalhando diretamente no repositório
O comando svn copy pode operar sobre diretórios ou diretamente sobre as URL’s do repositório.
svn copy //trunk //branches -m

Visualizar logs de alterações

svn log  *Mostra as descrições das alterações feitas nos arquivos ou diretórios
ou
svn log –verbose  *Mostra as descrições e os arquivos que sofreram alterações

Propriedades

É possível a atribuição de propriedades à arquivos ou diretórios contidos no repositório.

Listar propriedades de um projeto

svn propget
ou
svn status *Se estiver na pasta à qual possui os arquivos locais do repositório
ou
svn status

Setar propriedades em um projeto

svn propset copyright ‘’ svn://srvbuild/repos/sgiapi-testes
ou
svn propset -R
ou
svn propset -F

*As propriedades devem ser setadas em uma cópia local, e realizar commit para efetivação no repositório.

Existem vários tipos de propriedades definidas pelo subversion que podem ser atribuidas aos projetos.

Ligações Externas (svn:externals)


As definições externas são um tipo especial de propriedades, que criam um link à arquivos em outro local no repositório. São um mapeamento de um diretório local para a URL.

Alguns comandos para trabalhar com definições externas:


Setar a propriedade svn:externals para uma cópia local

svn propset svn:externals “
svn commit *Para enviar as ligações externas ao repositório

Desta forma, é criado um link à pasta  dentro do fazendo com que, após o commit, sem que se realize umcheckout sobre o repositório, automaticamente se baixe os fontes referentes à definição externa. É bastante útil, caso possua uma API, oulibs que sejam necessários para vários projetos. Sendo que quando se realiza manutenção sobre a API ou sobre as libs, a mesma se aplica a todos os projetos que fazem dela uma definição externa.

Listar Ligações externas à um projeto

svn propget svn:externals


*Lembrando que os exemplos entre “<…>” deverão ser substituídos pelo caminho do arquivo ou diretório ou url.