Gözden geçirmenin belgelendiği wiki'de göremiyorum. İdeal olarak, sadece klasör değil ... ve daha sonra uygulama kapanırsa ya da başka bir şekilde, bu dosyaya değişiklikleri geri yapabilir, bir dosya "example/folder/file.xml" kontrol etmek istiyorum. Bunu nasıl yaparım?SVNKit ile Dizin/Dosya Kontrolü/Check out
cevap
Subversion'da bir dosya teslim edemiyorsunuz. Bir klasöre bakmalısın.
bir veya daha fazla dosya içeren bir klasörü kontrol etmek için:
SVNKit geliştirici olarakSVNClientManager ourClientManager = SVNClientManager.newInstance(null,
repository.getAuthenticationManager());
ourClientManager.getWCClient().doInfo(wcPath, SVNRevision.HEAD);
ourClientManager.getCommitClient().doCommit
(new File[] { wcPath }, keepLocks, commitMessage, false, true);
, ben yeni tercih etmenizi öneriyoruz:
SVNClientManager ourClientManager = SVNClientManager.newInstance(null,
repository.getAuthenticationManager());
SVNUpdateClient updateClient = ourClientManager.getUpdateClient();
updateClient.setIgnoreExternals(false);
updateClient.doCheckout(url, destPath, revision, revision,
isRecursive);
önceden klasör teslim işlemek için SvnOperationFactory dayalı API. Eski API (SVNClientManager'a dayanarak) hala çalışır durumda olacak ancak tüm yeni SVN özellikleri sadece yeni API'ye gelecek.
final SvnOperationFactory svnOperationFactory = new SvnOperationFactory();
try {
final SvnCheckout checkout = svnOperationFactory.createCheckout();
checkout.setSingleTarget(SvnTarget.fromFile(workingCopyDirectory));
checkout.setSource(SvnTarget.fromURL(url));
//... other options
checkout.run();
} finally {
svnOperationFactory.dispose();
}
bu yüzden workingCopyDirectory öğesini "File workingCopyDirectory = new File ("/home/lucy ") olarak bildirmemiz gerekiyor." ??? – Lucy
Evet, eğer çalışma kopyalama dizininizin/home/lucy'de olmasını istiyorsanız –
tamam .. Başka bir şüphe var .. SvnOperationFactory bir partikar SVN yolunda veya sadece dosyalarda saklanan dosyalar ile birlikte bir klasör kopyalayacaktır? – Lucy
Ayrıca, Dmitry Pavlenko tarafından önerilen kod snippet'ini de kullandım ve sorun yaşamadım. Ancak 35 MB'lik bir repo çalışmasının kontrol edilmesi veya güncellenmesi yaklaşık 30 dakika sürdü. Usecase'de kullanılamıyor (sadece bir web uygulamasının içeriğinin/belgelerinin/medyasının bir parçası olarak bir dizin yapısının kontrol edilmesi). Ya da bazı hatalar yaptım mı?
final ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
final SVNURL svnUrl = SVNURL.create(url.getProtocol(), name, url.getHost(), 443, url.getPath(), true);
SVNRepository svnRepo= SVNRepositoryFactory.create(svnUrl);
svnRepo.setAuthenticationManager(authManager);
svnOperationFactory.setAuthenticationManager(authManager);
SVNDirEntry entry = svnRepo.info(".", -1);
long remoteRevision = entry.getRevision();
if (!workingCopyDirectory.exists()) {
workingCopyDirectory.mkdirs();
}
final SvnCheckout checkout = svnOperationFactory.createCheckout();
checkout.setSource(SvnTarget.fromURL(svnUrl));
checkout.setSingleTarget(SvnTarget.fromFile(workingCopyDirectory));
remoteRevision = checkout.run();
Aynı problemim var, sonsuza dek bitirmek ... Eksik bir parametre olmalı. Hiç çözdün mü? –
- 1. SVNkit SVNRepoitory oluşturulamıyor
- 2. jQuery/Out
- 3. MVVM Swapping out denetimleri
- 4. Nasıl Check out out SVN için Dosya Ekle
- 5. Oracle pop-out girdisi
- 6. System out println
- 7. JTextFild Glitched Out
- 8. DynamicMethod ve out-parameters?
- 9. jquery focus in/out
- 10. Pop-out görüntü html
- 11. CSS tarafı çalışmıyor Material-out
- 12. Köklendirme ICS emülatörü; iterek su "bellek Out" ile başarısız
- 13. Task.Factory.FromAsync, "Son" Yöntemde "out" parametreleriyle
- 14. Atanmamış out parametresi kullanımı, C#
- 15. Sistem ve out in java
- 16. CQ5 Mavi baskı Roll Out Değişiklikler
- 17. PHP PDO OUT parametre değerini alamıyor
- 18. FluentNhibernate Haritalama Range Endeksi Out yeni Nesne
- 19. Animasyonlu Fab on (zoom in/out)
- 20. Sadece 'amd' ve 'sistem' modüller --out
- 21. File.GetLastWriteTime, 'out of date' değerini döndürüyor görünüyor '
- 22. C# WPF Penceresi 'out' parametresi için
- 23. Powershell Out-File: Kodlamayı Ascii'ye zorla
- 24. Lamdada ifadelerinde ref veya out parametresi kullanılamıyor
- 25. AIDL arabirimi parametre değeri "In/out/inout"?
- 26. Fan-out/fan-in-kapanış sonucu kanalı
- 27. Lambda fonksiyonunda 'out' parametrelerini kullanmak için bir numara var mı?
- 28. OpenGL-ES'nin "in" ve "out" nedir? (OpenGL'den bağlantı)
- 29. .NET Out Of Memory Exception - 1.3GB kullanıldı ancak 16GB yüklü
- 30. System.Drawing Out of Memory Exception On Main() Metodu - C#
+1 çok yararlı bir yanıt. Buna ek olarak, bir dosyayı ** dışarı aktarmak istiyorsanız ** bunu ['updateClient.doExport (url, destPath, revizyon, revizyon, eolStyle, force, isRecursive)'] kullanarak yapabilirsiniz (http://svnkit.com /javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html#doExport%28org.tmatesoft.svn.core.SVNURL,%20java.io.File,%20org.tmatesoft.svn.core.wc.SVNRevision,% 20org.tmatesoft.svn.core.wc.SVNRevision,% 20java.lang.String,% 20boolean,% 20boolean% 29) –
DoExport'ta listelenen aşırı yüklenme, SVNKit 1.7.5-v1'de kullanımdan kaldırılmıştır. Bunun yerine aşağıdaki aşırı yüklemeyi kullandım: 'updateClient.doCheckout (url, destPath, SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true);' – jbandi
Yukarıdaki kodu kullanarak bir uyarı alıyorum "Yöntem doCheckout (SVNURL , SVNUpdateClient türünden Dosya, SVNRevision, SVNRevision, boolean) kullanımdan kaldırılmıştır "... Herhangi bir fikir doCheckout yerine hangi yöntemi kullanacaksınız ?? – Lucy