Desenvolvimento compartilhado utilizando Studio Creator

Estamos utilizando a IDE Studio Creator para desenvolver uma aplicação JSF na qual participam vários desenvolvedores.
Criamos um projeto onde todos os desenvolvedores irão acessar.
Acontece que quando mais de um desenvolvedor está utilizando o mesmo arquivo ao mesmo tempo, as modificações não são refletidas e nenhuma mensagem de alerta é emitida aos usuários.

Alguém sabe como resolver esse problema pela IDE?

Porque não usam o CVS (Concurrent Versions System)?!? Ele ta aí pra isso …

Nao sei se tem solucao sem um CVS da vida … basicamente a IDE teria que fazer as vezes do danado (tá, o CVS não faz assim, mas o VSS faz:), copiando o arquivo que vc vai editar localmente e barrando (read-only) o arquivo remoto.

Então smota,

A gente usa o CVS…
Entretanto utilizamos o CVS para controlar versão do sistema como um todo. Por exemplo, versão 1.0, 1.1, 1.2… do sistema como um todo, não a cada modificação do usuário…

O que preciso mesmo é disso que vc. falou, a IDE setar um read-only em um arquivo que esteja sendo utilizado por outro usuário…

Isso solucionaria meu problema…

Entao, isso nao é funcao da IDE, é do CVS mesmo.

Vcs nao estao subutilizando o coitado nao? Conhece branchs, tags & cia?

Ueh, entao voces tao usando CVS pra controlar releases, e nada pra controlar o codigo? Geralmente eh o contrario :slight_smile:

Você pode ser se o Studio suporta o uso de editors e watches do cvs. Não é lá grande coisa mas funciona.

O cvs funciona com desenvolvimento paralelo e merging. Ou seja, se dois editarem os mesmo arquivo, o último a realizar commit faz o merge.

Se você realmente quer trabalhar usando file locks, que é muito menos produtivo, use um SCM que não o cvs.

Dando um pouco mais de enfase: trabalhar com file locks ao inves de versoes concorrentes e merging eh mais ou menos como amarrar os cadarcos do tenis e correr uma Sao Silvestre. Voce pode ate terminar a corrida, se nao precisar de atendimento medico imediato depois de ter estourado a cara no chao tantas vezes por causa das tropecadas.

Então cv,

Dependendo do ponto de vista pode ser assim do jeito que vc. disse.

Mas no nosso caso acredito que não…Vou explicar melhor…
Temos um ERP aqui na empresa com 47 licenças e 102 usuário concorrentes, e determinados momentos não há licenças disponíveis para todos.
Uma solução é óbvia: comprar mais licenças.
Entretanto o custo deixou a diretoria um pouco assustada. São US$ 3.000 por licença adicional e mais 10% ao ano de manutenção.

Então, fizemos um levantamento detalhado do perfil dos usuários e determinamos algumas aplicações que poderíamos estar atualizando a base do ERP mas sem utilizar o ERP, mas sim uma aplicação em outra plataforma, no caso Java. Com isso conseguiríamos diminuir a qtde. de usuários concorrentes no ERP.

Assim, modelamos o sistema em Java e vamos desenvolver utilizando o framework JSF e a IDE Java Studio Creator da sun.
No ERP existe algumas particularidades, principalmente no tratamento de textos, que temos que refletir no Java… Então criamos diversas classes em um pacote chamado comuns, que são classes comuns para todas as aplicações que criaremos.

Entretanto, em determinado momento alguém pode precisar alterar alguma dessas classes. E esse alguém pode ser mais de um ao mesmo tempo… Seria + ou - assim, dois desenvolvedores criando um novo método em uma classe para fazer a mesma coisa… O CVS não me ajuda em nada neste caso…

O que precisaria mesmo é determinado acesso único ao arquivo.

Tô certo ou tô errado??

[quote=barrilari]Seria + ou - assim, dois desenvolvedores criando um novo método em uma classe para fazer a mesma coisa… O CVS não me ajuda em nada neste caso…

Tô certo ou tô errado??
[/quote]

Errado tá a sua metodologia onde 2 pessoas querem a mesma coisa mas nao sabem :stuck_out_tongue:

Na verdade até nesse ambiente sem comunicação o CVS ajudaria porque na hora que o 2o caboclo for dar commit e der confusao o CVS vai avisar e ele vai ter que revisar o commit do primeiro pra fazer o merge e entao descobrir que os dois quiseram alterar o mesmo pedaco.

Outra coisa … se vc só usa o CVS pra release … o que um caboclo faz nunca interfere no outro? Tipo, cada um faz uma coisa totalmente desconexa do outro?

E mais … onde fica o working-folder ? Tá na rede com backup e tudo neH? (geralmente é mais facil só fazer backup do CVS quando vc tem commits frequentes)

Errado… qual o problema em deixar os dois desenvolvedores mexer no mesmo arquivo ao mesmo tempo, e fazer merge quando necessario (ou seja, quando dois desenvolvedores mexem exatamente nas mesmas linhas, ao mesmo tempo, o que eh mais raro do que vc imagina num ambiente de desenvolvimento “saudavel”)?

Então pelo jeito está sendo ignorância minha mesmo…

Vamos lá, só mais uma pergunta:
Por exemplo:
Um camarada abre o arquivo usuario.java e começa a alterá-lo e antes dele salvar as alterações outro camarada abre o mesmo arquivo e também começa a editá-lo.

Nesse momento, o CVS vai avisar algum dos usuários sobre a intervenção do outro??
Por que se não avisar, um dos usuários ( o que salvar por último ) terá um trabalho adicional de equalizar as duas versões… É isso ???

é isso.

O CVS tem a opcao de WATCH EDIT ou coisa assim, com isso ele vai sim avisar o 2o usuario que já tem alguem editando, mas é opcional.

O Eclipse suporta isso numa boa, o Studio Creator tb deve suportar mas nao sei dizer.

É isso mesmo que preciso…

Vou dar uma pesquisada melhor no CVS então…

O Studio Creator não avisa… fizemos diversos testes e realmente ele ainda é falho nesse aspecto!! Eu abri um tópico no fórum da Sun sobre isso, vou esperar a resposta e posto aqui…

Obrigado pela força de vocês