diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-01-10 16:53:41 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-01-10 16:53:41 +0000 |
commit | 0e1821f3d826829fb3393c516ea3920eeccf46aa (patch) | |
tree | c17f03c767bab909f10b31f629db622d3a8ec257 /cmdline/apt-get.cc | |
parent | fdd15654d89c08ef056905529df4992db1ab67f4 (diff) | |
parent | c5691ddf15797bead5d77021ee0524635798bebb (diff) |
* merged with apt--mvo
Patches applied:
* bubulle@debian.org--2005/apt--main--0--patch-134
Updated Basque translation
* bubulle@debian.org--2005/apt--main--0--patch-135
Completed Basque translation
* bubulle@debian.org--2005/apt--main--0--patch-136
French manpage of sources.list updated
* bubulle@debian.org--2005/apt--main--0--patch-137
Disable Hebrew translation on trnaslator's request
* bubulle@debian.org--2005/apt--main--0--patch-138
Swedish translation update
* bubulle@debian.org--2005/apt--main--0--patch-139
Tagalog translation update
* bubulle@debian.org--2005/apt--main--0--patch-140
Fix a translation glitch in German
* bubulle@debian.org--2005/apt--main--0--patch-141
Revert the German fix
* bubulle@debian.org--2005/apt--main--0--patch-142
Updated Vietnamese translation
* bubulle@debian.org--2005/apt--main--0--patch-143
Really add the Vietnamese translation
* bubulle@debian.org--2005/apt--main--0--patch-144
Greek translation update
* bubulle@debian.org--2005/apt--main--0--patch-145
Simplified Chinese completed
* bubulle@debian.org--2005/apt--main--0--patch-146
Czech translation update
* bubulle@debian.org--2005/apt--main--0--patch-147
British translation of apt
* bubulle@debian.org--2005/apt--main--0--patch-148
Italian translation update
* bubulle@debian.org--2005/apt--main--0--patch-149
Merge with Michael archive (Debian version)
* bubulle@debian.org--2005/apt--main--0--patch-150
Fix typo in apt-get.cc and update PO files
* bubulle@debian.org--2005/apt--main--0--patch-151
Update French translation (and document the update-po I ran previously)
* bubulle@debian.org--2005/apt--main--0--patch-152
Updated Slovak translation
* bubulle@debian.org--2005/apt--main--0--patch-153
Close the right bug for Slovak translation
* bubulle@debian.org--2005/apt--main--0--patch-154
French manpages translation update
* bubulle@debian.org--2005/apt--main--0--patch-155
Swedish translation update
* bubulle@debian.org--2005/apt--main--0--patch-156
Better makefile for more up-to-date PO and POT
* bubulle@debian.org--2005/apt--main--0--patch-157
Run make uupdate-po
* bubulle@debian.org--2005/apt--main--0--patch-158
Fix spaces errors in some translations
* bubulle@debian.org--2005/apt--main--0--patch-159
Patch to allow "make apt-all.pot" work in the baz archive
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-109
* add " " in update-po
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-110
* make apt-get source smarter about not downloading the same sources twice
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-111
* merged with bubulle
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-112
* 2006 ftp-archive signing key added
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-113
* be more clever about I-M-S hits for the Release file and gpg-failures with it, requeue it without i-m-s then
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-114
* merged with mvo
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-115
* string fix
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-116
* changelog updates
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-117
* merged with bubulle
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-118
* merged from bubulle
* michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-119
* fix http data corruption (#280844)
* mvo@debian.org--2005/apt--debian-experimental--0--patch-12
* added http data corruption fix patch (#280844)
* mvo@debian.org--2005/apt--debian-sid--0--base-0
tag of michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-71
* mvo@debian.org--2005/apt--debian-sid--0--patch-1
* merged with apt--mvo--0
* mvo@debian.org--2005/apt--debian-sid--0--patch-2
* merged with apt--mvo
* mvo@debian.org--2005/apt--debian-sid--0--patch-3
* updated apt-all.pot
* mvo@debian.org--2005/apt--debian-sid--0--patch-4
* merged with apt--mvo
* mvo@debian.org--2005/apt--debian-sid--0--patch-5
* merge with apt--mvo--0
* mvo@debian.org--2005/apt--debian-sid--0--patch-6
* merge with apt--mvo
* mvo@debian.org--2005/apt--debian-sid--0--patch-7
* applied patch from Petr Vandrovec to fix http download corruption
* mvo@debian.org--2005/apt--debian-sid--0--patch-8
* merged with apt--mvo, regenerated the po files
* mvo@debian.org--2005/apt--debian-sid--0--patch-9
* merged with apt--mvo
* mvo@debian.org--2005/apt--debian-sid--0--patch-10
* merged with apt--mvo and corrected conflicts in po/
* mvo@debian.org--2005/apt--debian-sid--0--patch-11
* changelog updates
* mvo@debian.org--2005/apt--debian-sid--0--patch-12
* apt--mvo merged
* mvo@debian.org--2005/apt--debian-sid--0--patch-13
* merged with mvo
* mvo@debian.org--2005/apt--debian-sid--0--patch-14
* merged with apt--mvo--0
* mvo@debian.org--2005/apt--debian-sid--0--patch-15
* support multiple signatures
* mvo@debian.org--2005/apt--debian-sid--0--patch-16
* merged with main
* philippe.batailler@free.fr--2005/apt--main--0--patch-4
Update of sources.list
* philippe.batailler@free.fr--2005/apt--main--0--patch-6
Change apt.ent.fr
* philippe.batailler@free.fr--2005/apt--main--0--patch-7
Update manpages
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 48b21a31f..abeb57c6f 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -38,6 +38,7 @@ #include <apt-pkg/version.h> #include <apt-pkg/cachefile.h> #include <apt-pkg/sptr.h> +#include <apt-pkg/md5.h> #include <apt-pkg/versionmatch.h> #include <config.h> @@ -45,6 +46,7 @@ #include "acqprogress.h" +#include <set> #include <locale.h> #include <langinfo.h> #include <fstream> @@ -1899,6 +1901,9 @@ bool DoSource(CommandLine &CmdL) DscFile *Dsc = new DscFile[CmdL.FileSize()]; + // insert all downloaded uris into this set to avoid downloading them + // twice + set<string> queued; // Load the requestd sources into the fetcher unsigned J = 0; for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++) @@ -1935,7 +1940,28 @@ bool DoSource(CommandLine &CmdL) if (_config->FindB("APT::Get::Tar-Only",false) == true && I->Type != "tar") continue; - + + // don't download the same uri twice (should this be moved to + // the fetcher interface itself?) + if(queued.find(Last->Index().ArchiveURI(I->Path)) != queued.end()) + continue; + queued.insert(Last->Index().ArchiveURI(I->Path)); + + // check if we have a file with that md5 sum already localy + if(!I->MD5Hash.empty() && FileExists(flNotDir(I->Path))) + { + FileFd Fd(flNotDir(I->Path), FileFd::ReadOnly); + MD5Summation sum; + sum.AddFD(Fd.Fd(), Fd.Size()); + Fd.Close(); + if((string)sum.Result() == I->MD5Hash) + { + ioprintf(c1out,_("Skipping already downloaded file '%s'\n"), + flNotDir(I->Path).c_str()); + continue; + } + } + new pkgAcqFile(&Fetcher,Last->Index().ArchiveURI(I->Path), I->MD5Hash,I->Size, Last->Index().SourceInfo(*Last,*I),Src); |