version 1.60, 2007/01/12 17:25:33 |
version 1.61, 2007/01/12 23:32:01 |
|
|
fatal("import_update: rcsnum_parse failed"); |
fatal("import_update: rcsnum_parse failed"); |
|
|
if (rev != NULL) { |
if (rev != NULL) { |
if ((b1 = rcs_getrev(cf->file_rcs, rev)) == NULL) |
if ((b1 = rcs_rev_getbuf(cf->file_rcs, rev)) == NULL) |
fatal("import_update: failed to grab revision"); |
fatal("import_update: failed to grab revision"); |
|
|
if ((b2 = cvs_buf_load_fd(cf->fd, BUF_AUTOEXT)) == NULL) |
if ((b2 = cvs_buf_load_fd(cf->fd, BUF_AUTOEXT)) == NULL) |
|
|
import_get_rcsdiff(struct cvs_file *cf, RCSNUM *rev) |
import_get_rcsdiff(struct cvs_file *cf, RCSNUM *rev) |
{ |
{ |
char *delta, *p1, *p2; |
char *delta, *p1, *p2; |
BUF *b1, *b2, *b3; |
BUF *b1, *b2; |
|
|
if ((b1 = cvs_buf_load_fd(cf->fd, BUF_AUTOEXT)) == NULL) |
if ((b1 = cvs_buf_load_fd(cf->fd, BUF_AUTOEXT)) == NULL) |
fatal("import_get_rcsdiff: failed loading %s", cf->file_path); |
fatal("import_get_rcsdiff: failed loading %s", cf->file_path); |
|
|
if ((b2 = rcs_getrev(cf->file_rcs, rev)) == NULL) |
b2 = cvs_buf_alloc(128, BUF_AUTOEXT); |
fatal("import_get_rcsdiff: failed loading revision"); |
|
|
|
b3 = cvs_buf_alloc(128, BUF_AUTOEXT); |
|
|
|
if (cvs_noexec != 1) { |
if (cvs_noexec != 1) { |
(void)xasprintf(&p1, "%s/diff1.XXXXXXXXXX", cvs_tmpdir); |
(void)xasprintf(&p1, "%s/diff1.XXXXXXXXXX", cvs_tmpdir); |
cvs_buf_write_stmp(b1, p1, NULL); |
cvs_buf_write_stmp(b1, p1, NULL); |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
|
|
(void)xasprintf(&p2, "%s/diff2.XXXXXXXXXX", cvs_tmpdir); |
(void)xasprintf(&p2, "%s/diff2.XXXXXXXXXX", cvs_tmpdir); |
cvs_buf_write_stmp(b2, p2, NULL); |
rcs_rev_write_stmp(cf->file_rcs, rev, p2, 0); |
cvs_buf_free(b2); |
|
|
|
diff_format = D_RCSDIFF; |
diff_format = D_RCSDIFF; |
if (cvs_diffreg(p2, p1, b3) == D_ERROR) |
if (cvs_diffreg(p2, p1, b2) == D_ERROR) |
fatal("import_get_rcsdiff: failed to get RCS patch"); |
fatal("import_get_rcsdiff: failed to get RCS patch"); |
|
|
(void)unlink(p1); |
(void)unlink(p1); |
|
|
xfree(p2); |
xfree(p2); |
} |
} |
|
|
cvs_buf_putc(b3, '\0'); |
cvs_buf_putc(b2, '\0'); |
delta = cvs_buf_release(b3); |
delta = cvs_buf_release(b2); |
|
|
if (b1 != NULL) |
if (b1 != NULL) |
cvs_buf_free(b1); |
cvs_buf_free(b1); |
if (b2 != NULL) |
if (b2 != NULL) |
cvs_buf_free(b2); |
cvs_buf_free(b2); |
if (b3 != NULL) |
|
cvs_buf_free(b3); |
|
|
|
return (delta); |
return (delta); |
} |
} |