public function start() {
		$env = $this->Environment();
		$log = $this->log();

		$args = array(
			'dataTransferID' => $this->ID,
			'logfile' => $this->logfile(),
			'backupBeforePush' => $this->backupBeforePush
		);

		if(!$this->AuthorID) {
			$this->AuthorID = Member::currentUserID();
		}

		if($this->AuthorID) {
			$author = $this->Author();
			$message = sprintf(
				'Data transfer on %s (%s, %s) initiated by %s (%s), with IP address %s',
				$env->getFullName(),
				$this->Direction,
				$this->Mode,
				$author->getName(),
				$author->Email,
				Controller::curr()->getRequest()->getIP()
			);
			$log->write($message);
		}

		$token = Resque::enqueue('git', 'DataTransferJob', $args, true);
		$this->ResqueToken = $token;
		$this->write();

		$message = sprintf('Data transfer queued as job %s', $token);
		$log->write($message);
	}